[php-maint] Bug#633100: Bug#633100: bad interaction with fuser bug in psmisc 22.14-1

Luka Frelih luka at ljudmila.org
Sun Jul 17 21:53:37 UTC 2011


hello!

thanks for your interest! my characterization of the bug in fuser is 
wrong, you are right.
ccing also craig, the maintainer of psmisc

but i have experienced many times this week all the daemons on our 
server being killed due to OOM (i guess) because of the php5 cron job. 
this leaves a machine with linux and an ip address, but no apache or 
ssh, only access is physically trough console. the databases indexes and 
even some tables got corrupted in the process too. max load was 400.

what i can confirm from investigation is that version 22.14-1 of fuser 
uses many times more resources - cpu and ram - than the stable version. 
why this is, i don't know. but used in the find for clearing php 
sessions it has a big impact. perhaps find spawns all these fuser 
commands in parallel, eating all ram? is that what causes all the 
defunct processes?

milci:~/php5-common# aptitude install psmisc/stable
The following packages will be DOWNGRADED:
   psmisc
...
Setting up psmisc (22.11-1) ...

milci:~/php5-common# ls /var/lib/php5 | wc
     203     203    7714
(not too many session really)

milci:~/php5-common# time find /var/lib/php5/ -depth -mindepth 1 
-maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser 
-s {} 2>/dev/null \;

real    0m4.808s
user    0m1.468s
sys    0m3.348s
milci:~/php5-common# aptitude install psmisc
The following packages will be upgraded:
   psmisc
...
Setting up psmisc (22.14-1) ...

milci:~/php5-common# time find /var/lib/php5/ -depth -mindepth 1 
-maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser 
-s {} 2>/dev/null \;
(...waiting, waiting... got fed up)
^C

real    0m47.717s
user    0m2.676s
sys    0m22.585s

milci:~/php5-common# uptime (load rises quickly!)
  23:28:24 up  6:57,  5 users,  load average: 1.36, 0.85, 0.49

so there is trouble brewing here, for sure. but might not be as simple 
as i thought...

LF

Dne 17. 07. 2011 21:44, piše Ondřej Surý:
> Hi,
>
> have you tested it yourself or have you just made conclusion on a blog post?
>
> howl:/# dpkg -l psmisc
> ii  psmisc                                               22.14-1
>                                         utilities that use the proc
> file system
>
> howl:/# fuser /bin/bash; echo $?
> /bin/bash:            1398m
> 0
> howl:/# fuser -s /bin/bash; echo $?
> 0
> howl:/# fuser /tmp/foobar; echo $?
> 1
> howl:/# fuser -s /tmp/foobar; echo $?
> 1
>
> It seems to me that the fuser works as it should. If you don't think
> so, please provide a clear test case.
>
> Regards,
> Ondrej
>
> On Sun, Jul 17, 2011 at 20:20,<luka at mail.ljudmila.org>  wrote:
>> hello!
>>
>> this issue is real and pretty dangerous to the stability of the system.
>>
>> fuser -s in version 22.14-1 has a bug, returning the wrong output value.
>> look at the blog post of maintainer here:
>> http://enc.com.au/2011/06/psmisc-22-14-released/
>>
>> because of this the cron job in php5-common fails to delete old sessions.
>> after a few hours, this can lead to meltdown of server by running out of
>> memory and countless defunct fuser processes in process list
>>
>> these processes aditionally cause extra logging by atop daemon, which can
>> fill the /tmp partition quickly
>>
>> best,
>> LF
>>
>>
>>
>>
>> _______________________________________________
>> pkg-php-maint mailing list
>> pkg-php-maint at lists.alioth.debian.org
>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-php-maint
>>
>
>






More information about the pkg-php-maint mailing list