Bug 15919 - Live installer goes into error loop after detecting insufficient space on selected root partition
Summary: Live installer goes into error loop after detecting insufficient space on sel...
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: Installer (show other bugs)
Version: Cauldron
Hardware: x86_64 Linux
Priority: Normal normal
Target Milestone: ---
Assignee: Thomas Backlund
QA Contact:
URL:
Whiteboard:
Keywords: PATCH
Depends on:
Blocks:
 
Reported: 2015-05-13 01:07 CEST by Martin Whitaker
Modified: 2015-12-25 11:22 CET (History)
4 users (show)

See Also:
Source RPM:
CVE:
Status comment:


Attachments
debug patch for checking if it's there the value got undefined (810 bytes, patch)
2015-05-13 13:56 CEST, Thierry Vignaud
Details | Diff
prevent a crash (863 bytes, patch)
2015-05-13 14:00 CEST, Thierry Vignaud
Details | Diff
possible fix (699 bytes, text/plain)
2015-05-14 01:41 CEST, Martin Whitaker
Details

Description Martin Whitaker 2015-05-13 01:07:15 CEST
Observed whilst testing bug 15257. Steps were:

1. UEFI boot KDE x86_64 live disk
2. Start installer from desktop
3. Select custom partitioning
4. Set ESP mount point to "/boot/EFI"
5. Set unused 4GB partition mount point to "/"
6. Select "Done" and complete formatting step
7. Installer reports insufficient space and returns to partitioning step
8. The message "Calculating size of Windows partition" is displayed
9. Once disk activity stops, a pop-up window appears with the message
     An error occurred.
     Cannot call method "signal_connect" on an undefined value.
10. If you click on "OK", the installer returns to step 8. If you click on "Cancel", the installer quits.

I have traced the point of failure to the line

  $button->signal_connect('focus-in-event' => sub {

in fs::partitioning_wizard::create_display_box. It is occurring on the iteration of the loop that displays my main Windows NTFS partition.
Marja Van Waes 2015-05-13 07:33:12 CEST

CC: (none) => marja11, thierry.vignaud, tmb

Marja Van Waes 2015-05-13 07:33:35 CEST

Assignee: bugsquad => tmb

Thierry Vignaud 2015-05-13 08:37:54 CEST

CC: (none) => pterjan

Comment 1 Thierry Vignaud 2015-05-13 13:56:39 CEST
Created attachment 6532 [details]
debug patch for checking if it's there the value got undefined

Can you apply this patch in /usr/lib/libDrakX prior to running the live installer?
Then run draklive-install from a terminal as root.
Reports back what it prints on the console (the lines beginning with ">>")
Thierry Vignaud 2015-05-13 13:56:49 CEST

Keywords: (none) => NEEDINFO

Comment 2 Thierry Vignaud 2015-05-13 14:00:03 CEST
Created attachment 6533 [details]
prevent a crash

If the previous patch shows that we set an undefined value, try again with that patch.
Does it fix it?
Thierry Vignaud 2015-05-13 14:00:34 CEST

Keywords: (none) => PATCH

Comment 3 Martin Whitaker 2015-05-14 01:26:13 CEST
With your debug patch, no warning message was printed. I tried moving it a few lines up (just before the first call to display_choices), but there it shows $mainw->{kind} is defined.
Comment 4 Martin Whitaker 2015-05-14 01:41:25 CEST
Created attachment 6540 [details]
possible fix

However, I think I've identified the cause of the problem. create_display_box gets called twice. The first time, only the $kind parameter has a value, the second time all the parameters (including $button) have values.

On the first time through the partitioning step, the second call to create_display_box sets the selected_for_resize flag for my NTFS partition. When returning to the partitioning step, this flag is still set, so the first call to create_display_box executes the block of code that ends with

  $button->signal_connect('focus-in-event' => sub { ... });

even though it doesn't have a value for $button.

The attached patch prevents the crash, but may not be the best fix.
Martin Whitaker 2015-05-14 01:41:35 CEST

Keywords: NEEDINFO => (none)

Comment 5 Thierry Vignaud 2015-05-14 08:26:30 CEST
"Possible" fix?
Does it fix it?
Comment 6 Mageia Robot 2015-05-14 08:33:54 CEST
commit e398b3cd6490c60035da843b37e555e89367b644
Author: Thierry Vignaud <thierry.vignaud@...>
Date:   Thu May 14 08:27:07 2015 +0200

    fix a crash after "insufficient space" error
    
    create_display_box gets called twice. The first time, only the $kind
    parameter has a value, the second time all the parameters (including
    $button) have values.
    
    On the first time through the partitioning step, the second call to
    create_display_box sets the selected_for_resize flag for my NTFS
    partition. When returning to the partitioning step, this flag is still
    set, so the first call to create_display_box executes the block of code
    that ends with
    
      $button->signal_connect('focus-in-event' => sub { ... });
    
    even though it doesn't have a value for $button.
    (Martin Whitaker, mga#15919)
---
 Commit Link:
   http://gitweb.mageia.org/software/drakx/commit/?id=e398b3cd6490c60035da843b37e555e89367b644
Comment 7 Thierry Vignaud 2015-05-14 08:34:34 CEST
Thanks
Closing

Status: NEW => RESOLVED
Resolution: (none) => FIXED

Comment 8 Mageia Robot 2015-12-25 11:22:47 CET
commit b41c49beadd672f4e16fd7ce37070ed8ff2a39d5
Author: Thierry Vignaud <thierry.vignaud@...>
Date:   Wed May 13 07:59:28 2015 -0400

    prevent a crash (mga#15919)
---
 Commit Link:
   http://gitweb.mageia.org/software/drakx/commit/?id=b41c49beadd672f4e16fd7ce37070ed8ff2a39d5

Note You need to log in before you can comment on or make changes to this bug.