[peruser] Peruser patch (v8)

Dave Steinberg dave-peruser at redterror.net
Fri Jan 7 15:10:33 MST 2011


On 1/7/2011 4:53 PM, Dave Steinberg wrote:
> On 1/7/2011 4:31 PM, Marcelo Coelho wrote:
>> Hello!
>>
>> Many changes. Here it is a new patch (v8).
>>
>> Patch from RC2:
>> http://opensource.mco2.net/download/apache/peruser/peruser-rc2-to-rc3-v8.patch
>>
>>
>> Full patch from vanilla Apache 2.2.17:
>> http://opensource.mco2.net/download/apache/peruser/peruser-rc3-full-v8.patch
>>
>>
>> Changes (from RC2):
>>
>> * (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()
>
> Hi Marcelo - nice work with this latest round of changes. I'm not seeing
> any more of the 'long lost child' errors, nor any segfaults. If I spot
> any, I'll pass along a stack trace as before. Thanks again!

Well, maybe I'm not quite so lucky.  Here's a pair of fresh stack traces:

First:

(gdb) bt
#0  apr_pool_destroy (pool=0x80e86b028) at memory/unix/apr_pools.c:358
#1  0x0000000000449110 in pass_request (r=0x80e86b0a0, 
child=0x8005a8498) at peruser.c:1563
#2  0x000000000044940f in peruser_post_read (r=0x80e86b0a0) at 
peruser.c:3439
#3  0x000000000042916a in ap_run_post_read_request (r=0x80e86b0a0) at 
protocol.c:1671
#4  0x000000000042b4ce in ap_read_request (conn=0x80e857298) at 
protocol.c:1011
#5  0x00000000004407d3 in ap_process_http_connection (c=0x80e857298) at 
http_core.c:183
#6  0x000000000043d0d2 in ap_run_process_connection (c=0x80e857298) at 
connection.c:43
#7  0x000000000044a0f4 in process_socket (p=0x80e857028, 
sock=0x80e8570a0, conn_id=114, bucket_alloc=0x80e865028, pool=0x80e855028)
     at peruser.c:1355
#8  0x000000000044b2ab in child_main (child_num_arg=Variable 
"child_num_arg" is not available.
) at peruser.c:2202
#9  0x000000000044ba65 in make_child (s=0x801617868, slot=114) at 
peruser.c:2518
#10 0x000000000044c032 in ap_mpm_run (_pconf=Variable "_pconf" is not 
available.
) at peruser.c:2635
#11 0x0000000000423afa in main (argc=3, argv=0x7fffffffeab8) at main.c:739

=====

Second, Zend again, and huge:

(gdb) bt
#0  0x000000080568fe85 in _zval_dtor_func () from 
/var/www/libexec/apache22/libphp5.so
#1  0x000000080ef3ce20 in ?? ()
#2  0x000000080569b5a3 in zend_hash_destroy () from 
/var/www/libexec/apache22/libphp5.so
#3  0x000000080568feaf in _zval_dtor_func () from 
/var/www/libexec/apache22/libphp5.so
#4  0x0000000805683636 in _zval_ptr_dtor () from 
/var/www/libexec/apache22/libphp5.so
#5  0x000000080569b5a3 in zend_hash_destroy () from 
/var/www/libexec/apache22/libphp5.so
#6  0x0000000805687ae6 in destroy_op_array () from 
/var/www/libexec/apache22/libphp5.so
#7  0x000000080569b5a3 in zend_hash_destroy () from 
/var/www/libexec/apache22/libphp5.so
#8  0x000000080569070a in zend_shutdown () from 
/var/www/libexec/apache22/libphp5.so
#9  0x000000080564c44a in php_module_shutdown () from 
/var/www/libexec/apache22/libphp5.so
#10 0x000000080564c4e9 in php_module_shutdown_wrapper () from 
/var/www/libexec/apache22/libphp5.so
#11 0x0000000805714871 in php_apache_child_shutdown () from 
/var/www/libexec/apache22/libphp5.so
#12 0x00000008010363ed in run_cleanups (cref=0x80e855048) at 
memory/unix/apr_pools.c:2308
#13 0x0000000801036e6e in apr_pool_destroy (pool=0x80e855028) at 
memory/unix/apr_pools.c:779
#14 0x000000000044cdd8 in just_die (sig=Variable "sig" is not available.
) at peruser.c:567
#15 <signal handler called>
#16 0x000000080140bc0c in poll () from /lib/libc.so.7
#17 0x000000080126c85e in poll () from /lib/libthr.so.3
#18 0x000000080566acbd in php_sockop_read () from 
/var/www/libexec/apache22/libphp5.so
#19 0x000000080aad6996 in ?? ()
#20 0x00000008058eafc0 in zend_compile_file () from 
/var/www/libexec/apache22/libphp5.so
#21 0x0000000000000400 in ?? ()
#22 0x0000000000000400 in ?? ()
#23 0x000000080f051a48 in ?? ()
#24 0x0000000000000400 in ?? ()
#25 0x0000000810e23048 in ?? ()
#26 0x0000000000000000 in ?? ()
#27 0x0000000805661d44 in php_stream_fill_read_buffer () from 
/var/www/libexec/apache22/libphp5.so
#28 0x000000080566201b in _php_stream_read () from 
/var/www/libexec/apache22/libphp5.so
#29 0x00000008055f9a3f in zif_fread () from 
/var/www/libexec/apache22/libphp5.so
#30 0x00000008056bd6d2 in zend_do_fcall_common_helper_SPEC () from 
/var/www/libexec/apache22/libphp5.so
#31 0x00000008056affb3 in execute () from 
/var/www/libexec/apache22/libphp5.so
#32 0x00000008056bd171 in zend_do_fcall_common_helper_SPEC () from 
/var/www/libexec/apache22/libphp5.so
#33 0x00000008056affb3 in execute () from 
/var/www/libexec/apache22/libphp5.so
#34 0x00000008056bd171 in zend_do_fcall_common_helper_SPEC () from 
/var/www/libexec/apache22/libphp5.so
#35 0x00000008056affb3 in execute () from 
/var/www/libexec/apache22/libphp5.so
#36 0x00000008056bd171 in zend_do_fcall_common_helper_SPEC () from 
/var/www/libexec/apache22/libphp5.so
#37 0x00000008056affb3 in execute () from 
/var/www/libexec/apache22/libphp5.so
#38 0x0000000805685113 in zend_call_function () from 
/var/www/libexec/apache22/libphp5.so
#39 0x00000008056862b6 in call_user_function_ex () from 
/var/www/libexec/apache22/libphp5.so
#40 0x00000008055ef1b7 in zif_call_user_func_array () from 
/var/www/libexec/apache22/libphp5.so
#41 0x00000008056bd6d2 in zend_do_fcall_common_helper_SPEC () from 
/var/www/libexec/apache22/libphp5.so
#42 0x00000008056affb3 in execute () from 
/var/www/libexec/apache22/libphp5.so
#43 0x00000008056bd171 in zend_do_fcall_common_helper_SPEC () from 
/var/www/libexec/apache22/libphp5.so
#44 0x00000008056affb3 in execute () from 
/var/www/libexec/apache22/libphp5.so
#45 0x00000008056bd171 in zend_do_fcall_common_helper_SPEC () from 
/var/www/libexec/apache22/libphp5.so
#46 0x00000008056affb3 in execute () from 
/var/www/libexec/apache22/libphp5.so
#47 0x00000008056901b3 in zend_execute_scripts () from 
/var/www/libexec/apache22/libphp5.so
#48 0x000000080564c2af in php_execute_script () from 
/var/www/libexec/apache22/libphp5.so
#49 0x00000008057158ca in php_handler () from 
/var/www/libexec/apache22/libphp5.so
#50 0x00000000004361da in ap_run_handler (r=0x80e8710a0) at config.c:157
#51 0x0000000000439412 in ap_invoke_handler (r=0x80e8710a0) at config.c:376
#52 0x000000000044351e in ap_process_request (r=0x80e8710a0) at 
http_request.c:282
#53 0x0000000000440858 in ap_process_http_connection (c=0x80e857408) at 
http_core.c:190
#54 0x000000000043d0d2 in ap_run_process_connection (c=0x80e857408) at 
connection.c:43
---Type <return> to continue, or q <return> to quit---
#55 0x000000000044a0f4 in process_socket (p=0x80e857028, 
sock=0x80e857110, conn_id=67, bucket_alloc=0x80e865028, pool=0x80e855028)
     at peruser.c:1355
#56 0x000000000044b2ab in child_main (child_num_arg=Variable 
"child_num_arg" is not available.
) at peruser.c:2202
#57 0x000000000044ba65 in make_child (s=0x801617868, slot=67) at 
peruser.c:2518
#58 0x000000000044c638 in ap_mpm_run (_pconf=Variable "_pconf" is not 
available.
) at peruser.c:2925
#59 0x0000000000423afa in main (argc=3, argv=0x7fffffffeab8) at main.c:739

Still, much improved, and the 'apachectl graceful' seems fixed.  :)

Thanks again,
-- 
Dave Steinberg
http://www.geekisp.com/
http://www.steinbergcomputing.com/
http://www.redterror.net/


More information about the Peruser mailing list