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.
CC: (none) => marja11, thierry.vignaud, tmb
Assignee: bugsquad => tmb
CC: (none) => pterjan
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 ">>")
Keywords: (none) => NEEDINFO
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?
Keywords: (none) => PATCH
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.
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.
Keywords: NEEDINFO => (none)
"Possible" fix? Does it fix it?
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
Thanks Closing
Status: NEW => RESOLVEDResolution: (none) => FIXED
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