[peruser] Peruser patch (v14)

Michal Kumžák gumidek at gumidek.cz
Tue Jan 18 01:01:37 MST 2011


Hello

Yesterday a have installed new patch v14 and there is some errors after 
rotate logs:

[Tue Jan 18 00:00:03 2011] [notice] Digest: generating secret for digest 
authentication ...
[Tue Jan 18 00:00:03 2011] [notice] Digest: done
[Tue Jan 18 00:00:03 2011] [notice] Apache/2.2.17 (FreeBSD) DAV/2 
PHP/5.3.5 with Suhosin-Patch configured -- resuming normal operations
[Tue Jan 18 00:00:03 2011] [notice] child pid 85694 exit signal 
Segmentation fault (11), possible coredump in /tmp
[Tue Jan 18 00:00:03 2011] [notice] child pid 85636 exit signal 
Segmentation fault (11), possible coredump in /tmp
[Tue Jan 18 00:00:03 2011] [notice] child pid 85634 exit signal 
Segmentation fault (11), possible coredump in /tmp
[Tue Jan 18 02:29:18 2011] [warn] long lost child came home! (pid 33039)
[Tue Jan 18 04:03:02 2011] [warn] long lost child came home! (pid 39372)
[Tue Jan 18 04:04:51 2011] [warn] long lost child came home! (pid 39555)
[Tue Jan 18 04:09:35 2011] [warn] long lost child came home! (pid 39832)
[Tue Jan 18 04:44:16 2011] [warn] long lost child came home! (pid 42023)
[Tue Jan 18 06:51:28 2011] [warn] long lost child came home! (pid 50234)
[Tue Jan 18 07:17:30 2011] [warn] long lost child came home! (pid 52110)
[Tue Jan 18 07:55:55 2011] [warn] long lost child came home! (pid 54474)
[Tue Jan 18 07:59:01 2011] [warn] long lost child came home! (pid 54667)
[Tue Jan 18 08:14:08 2011] [warn] long lost child came home! (pid 55788)


Backtrace of Segfault:

(gdb) bt full
#0  apr_allocator_destroy (allocator=0x80f422980) at 
memory/unix/apr_pools.c:133
         node = (apr_memnode_t *) 0x6d
#1  0x000000000044be9d in child_main (child_num_arg=Variable 
"child_num_arg" is not available.
) at peruser.c:567
         ptrans = (apr_pool_t *) 0x80f4e8028
         allocator = (apr_allocator_t *) 0x80f422980
         status = 0
         i = Variable "i" is not available.
(gdb) where
#0  apr_allocator_destroy (allocator=0x80f422980) at 
memory/unix/apr_pools.c:133
#1  0x000000000044be9d in child_main (child_num_arg=Variable 
"child_num_arg" is not available.
) at peruser.c:567
#2  0x000000000044c245 in make_child (s=0x80161a868, slot=9) at 
peruser.c:2534
#3  0x000000000044c812 in ap_mpm_run (_pconf=Variable "_pconf" is not 
available.
) at peruser.c:2651
#4  0x000000000042423a in main (argc=1, argv=0x7fffffffeb88) at main.c:739
(gdb)

My peruser configuration:

## Fork limits
ServerLimit             1000
MaxClients              1000
MaxRequestsPerChild     500

## Timeouts
# kill idle processors after this many seconds (0 to disable)
IdleTimeout             10
# kill hung processes after this many seconds (0 to disable)
ExpireTimeout           180

## Multiplexer pool
MinMultiplexers         4
MaxMultiplexers         20
MultiplexerIdleTimeout  10

## Processor defaults
MinProcessors           0
MaxProcessors           50
MinSpareProcessors      0
MaxSpareProcessors      10
#StartProcessors                1
ProcessorWaitTimeout    5 10
KeepAlive               Off

#Multiplexer www www
#Multiplexer www www
#Multiplexer www www
#Multiplexer www www

My vhost configuration for serverenvironment:

<Processor u5000>
     User u5000
     Group u5000
     MinProcessors 0
     MaxProcessors 100
</Processor>

My configuration for rotate logs in /etc/newsyslog.conf

/var/log/httpd-*.log                    640  7     *    $D0   JBG   
/var/run/httpd.pid 30
/home/*/logs/*_log                      640  30    *    $D0   JBG   
/var/run/httpd.pid 30

I hope this helps you to find bugs.


Best regards
Michal Kumzak


Dne 13.1.2011 22:32, Marcelo Coelho napsal(a):
> Hi!
>
> Peruser patch (v14)
>
> Patch from RC2:
> http://opensource.mco2.net/download/apache/peruser/peruser-rc2-to-rc3-v14.patch
>
> Full patch from vanilla Apache 2.2.17:
> http://opensource.mco2.net/download/apache/peruser/peruser-rc3-full-v14.patch
>
> Changes (from RC2):
>
> * (v14) Bug fix: multiplexer segfault when passing big requests to processors (URI with ~8192 bytes and big Referer header)
> * (v14) Performance: faster idle server maintenance
> * (v14) Clean-up: removed .orig files
> * (v13) Code more "APR-ized"
> * (v13) Bug fix: apachectl graceful works, even under high load.
> * (v12) Not released to public
> * (v11) Not released to public
> * (v10) Bug fixed: fixed some segfaults
> * (v10) Bug fixed: work around to a flaw in apr-util (as PR 43857)
> * (v9) Not released to public
> * (v8) Bug fixed: apachectl graceful now is more stable, like RC2 version
> * (v8) Bug fixed: fixed some segfaults (thank you Dave Steinberg for sending your core dumps)
> * (v8) Bug fixed: server dies with infinite loop script, reported by Taavi Sannik
> * (v8) Bug fixed: "long lost child" error, reported by Taavi Sannik
> * (v8) Performance: update_all_counters() rewritten without malloc() and free()
> * (v7) Bug fixed: multiplexers now can clone a processor child if all workers are busy.
> * (v6) Bug fixed: apachectl graceful now working properly, without "long lost child" errors
> * (v5) Not released to public
> * (v4) Code cleanup
> * (v4) Performance: childs are started in ~25ms, 40 times faster than in RC2 (~1000ms)
> * (v4) Bug fixed: now checking if total_processors is 1 (first access) to start StartProcessors
> * (v3) Performance: new child type (CHILD_TYPE_RESERVED) to avoid collision (2 childs trying to get the same free slot)
> * (v3) Bug fixed: fixed a bug in RC2, wait_timeout was always 0, never sleeping to wait for new workers.
> * (v2) Performance: StartProcessors, new configuration directive to control the number of child processors per vhost at startup
> * (v2) Performance: childs are started in ~50ms, 20 times faster than in RC2 (~1000ms)
> * (v1) Performance: faster to lookup for free slots (this is important on busy servers, with many virtual hosts)
> * (v1) Performance: faster to count processors, one single loop counts all processors
> * (v1) Bug fixed: bug when MinSpareProcessors is set to 0 (now all workers processes are killed when idle_timeout is reached)
> * (v1) Bug fixed: Free-up slots when a WORKER or PROCESSOR unexpectedly dies
>
>
> Regards,
>
> --
> Marcelo Coelho
> marcelo at mco2.com.br
>
>
> _______________________________________________
> Peruser mailing list
> Peruser at telana.com
> http://www.telana.com/mailman/listinfo/peruser
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: gdb.txt
URL: <http://www.telana.com/pipermail/peruser/attachments/20110118/723684d1/attachment.txt>


More information about the Peruser mailing list