On Saturday 06 October 2007 03:52, Max Kanat-Alexander wrote:
>       I have an x86_64 machine running RHEL5 but with the mod_perl
> 2.0.3 from Fedora 7.
>
>       Without Linux::Smaps installed, Apache2::SizeLimit thinks my
> processes are taking up 300MB and terminates them after every hit.
> ("top" thinks so too, but "free -m" quickly proves that's untrue.)
>
>       With Linux::Smaps, Apache2::SizeLimit simply doesn't work at
> all, because Linux::Smaps apparently doesn't work under x86_64.
>
>       See this RT bug I filed against Linux::Smaps:
>
>       http://rt.cpan.org//Ticket/Display.html?id=29803
>
>       I do have a kernel that supports smaps, 2.6.18.

Linux::Smaps simply analyzes /proc/$PID/smaps. It was initially written on a 
32bit system. Looking at your bug report I assume the hex() function doesn't 
work for 64bit hex values. Can you show us the output of /proc/$PID/smaps of 
one of your apache processes? Is your perl compiled with 64bit support?

Assuming the latter this patch may work for you. Otherwise you'll get an 
integer overflow.

--- lib/Linux/Smaps.pm~ 2005-09-23 20:55:12.000000000 +0200
+++ lib/Linux/Smaps.pm  2007-10-07 12:13:06.000000000 +0200
@@ -2,7 +2,7 @@

 use 5.008;
 use strict;
-no warnings qw(uninitialized);
+no warnings qw(uninitialized portable);
 use Class::Member::HASH qw{pid lasterror
                           _elem -CLASS_MEMBERS};


Please let me know if it works.

Torsten

Attachment: pgpN0gZjGSJ1e.pgp
Description: PGP signature

Reply via email to