Bug 3042

Summary: mgaapplet crashed (Can't locate syscall.ph in @INC) due to live upgrade of perl
Product: Mageia Reporter: Frédéric "LpSolit" Buclin <LpSolit>
Component: RPM PackagesAssignee: Mageia Bug Squad <bugsquad>
Status: RESOLVED FIXED QA Contact:
Severity: minor    
Priority: Normal CC: marja11, pleny29, thierry.vignaud
Version: Cauldron   
Target Milestone: ---   
Hardware: i586   
OS: Linux   
Whiteboard:
Source RPM: mgaonline-2.77.30-2.mga2 CVE:
Status comment:

Description Frédéric "LpSolit" Buclin 2011-10-14 15:25:23 CEST
The "mgaapplet" program crashed. Drakbug-13.63 caught it.

rpmdrake was installing updates, among which perl-5.14.2.

Backtrace was:
Can't locate syscall.ph in @INC (did you run h2ph?) (@INC contains: /usr/lib/libDrakX /usr/lib/libDrakX/drakfirsttime /usr/lib/perl5/site_perl/5.14.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.14.1 /usr/lib/perl5/vendor_perl/5.14.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.14.1 /usr/lib/perl5/5.14.1/i386-linux-thread-multi /usr/lib/perl5/5.14.1 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.14.0 /usr/lib/perl5/vendor_perl/5.14.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.12.3 /usr/lib/perl5/vendor_perl/5.12.2 /usr/lib/perl5/vendor_perl .) at /usr/lib/perl5/vendor_perl/5.14.1/MDK/Common/System.pm line 303.
Compilation failed in require at /usr/lib/libDrakX/modules.pm line 9.
BEGIN failed--compilation aborted at /usr/lib/libDrakX/modules.pm line 9.
Compilation failed in require at /usr/lib/libDrakX/detect_devices.pm line 15.
BEGIN failed--compilation aborted at /usr/lib/libDrakX/detect_devices.pm line 15.
Compilation failed in require at /usr/lib/libDrakX/any.pm line 10.
BEGIN failed--compilation aborted at /usr/lib/libDrakX/any.pm line 10.
Compilation failed in require at /usr/lib/libDrakX/network/tools.pm line 267.
standalone::bug_handler() called from /usr/bin/mgaapplet:297

Kernel version = 3.1.0-desktop586-0.rc9.1.mga2
Distribution=Mageia release 2 (Cauldron) for i586
CPU=Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
Comment 1 Thierry Vignaud 2011-12-10 06:01:02 CET
Hum you got hit because of live upgrade of perl-5.14.1 to 5.14.2 which altered the location of syscall.ph

I'm surprised this module wasn't cached

CC: (none) => thierry.vignaud
Summary: mgaapplet crashed (Can't locate syscall.ph in @INC (did you run h2ph?) => mgaapplet crashed (Can't locate syscall.ph in @INC) due to live upgrade of perl
Severity: normal => minor

Comment 2 Marja Van Waes 2012-01-29 15:05:53 CET
(In reply to comment #1)
> Hum you got hit because of live upgrade of perl-5.14.1 to 5.14.2 which altered
> the location of syscall.ph
> 
> I'm surprised this module wasn't cached

no one reproduced it, so far, so it seems to have been a one time thing :)

CC: (none) => marja11

Comment 3 Marja Van Waes 2012-03-02 15:31:42 CET
Closing, because it happened only one time in now very old cauldron and wasn't reproduced

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

Comment 4 Thierry Vignaud 2012-03-12 16:54:22 CET
Even if your cas was not supported (you actually performed a live upgrade of cauldron), this can actually still happen.

If there's a new major perl version, we'll still lazy load syscalls.ph in MDK::Common::System.
While it's usually OK for most programs (no wasted RAM for not used feature), it's not for mgaaplet that usually lives quite longer that other programs.

So mgaapplet shoud load system.ph

Status: RESOLVED => UNCONFIRMED
Resolution: OLD => (none)
Ever confirmed: 1 => 0

Comment 5 Thierry Vignaud 2012-03-12 17:25:48 CET
Or I could move cmp_kernel_versions() somewhere else, that would prevent loading useless modules for mgaaplet.
Probably in common.pm which is used by all users of cmp_kernel_versions().
That also saves 5mb off net_applet (11% of its resident memory) and 7Mb off mga_applet (14%) :-)
Comment 6 Manuel Hiebel 2012-03-12 23:16:58 CET
*** Bug 4913 has been marked as a duplicate of this bug. ***

CC: (none) => patrick.leny

Comment 7 Thierry Vignaud 2012-03-13 08:36:41 CET
Fixed in drakxtools-13.92

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