[PHP-dev 138] Re: Please test APC CVS source
Youichi Iwakiri
php-dev@php.gr.jp
Wed, 05 Dec 2001 20:57:57 +0900
いわきりです
Rui Hirokawa wrote in <20011205002246.0291ba97.rui_hirokawa@ybb.ne.jp>:
>廣川です。
>APCのCVS版
>PHP-4.1.0RC4 --enable-debug (Apache DSO)
>Apache-1.3.22
>Linux-2.2.18
>の環境でテストしたところ、
私も同じくテストしてみました。
環境は
PHP-4.0.6 --enable-debug (Apache DSO)
Apache-1.3.20
FreeBSD 3.4-RELEASE
apc-cvs.tar.gz timestamp 2001/12/03 8:19:28 size 237,568 byte
実行環境は
apc.mode=shm
apc.shm_segment_size=2097152
としています。
#メモリ少ないので
#defaultだと32Mbytes × 10 setみたいですね
><?php
>function foo()
>{
> isset($unset_value);
>}
>
>のコードで以下のメモリリークを検出しました。
>大垣さんのものと同じです。
>
>apc_serialize.c(1931) : Freeing 0x0811B164 (84 bytes),
>script=/home/rui/public_
>html/php/cache/cache_test1.php
メモリリークに関してはほぼ一緒です。
84 bytesが92 bytesにこちらの環境ではなります。
>その後、何回かくり返しアクセスするとApacheのプロセスが落ちるようになりました
こっちは、確認できませんでした。
大垣さんのスクリプトを試した限りでは
1回目のリクエストのみleakの情報が出力され以降のリクエストでは
出力されません。
また、ApacheBenchで10万回の連続requestを実施しましたが
プロセスは落ちませんでした。
他の自作のページを適当に見ているときに落ちました。
その時のBackTraceはとりました。
色々と余計なものがloadingされてますが以下の場所で
落ちているようです。
他に取れる情報があればとりますけどどの辺りの
情報が必要ですか?
以下、gdb コンソールログ
GNU DDD 3.3.1 (i386-unknown-freebsd3.4), by Dorothea Lkehaus and Andreas Zeller.
Copyright 1995-1999 Technische Universit Braunschweig, Germany.
Copyright 1999-2001 Universit Passau, Germany.
(no debugging symbols found)...
/root/451: No such file or directory.
Attaching to program: /usr/local/apache/bin/httpd, process 451
Reading symbols from /usr/lib/libcrypt.so.2...
(no debugging symbols found)...done.
Reading symbols from /usr/lib/libc.so.3...(no debugging symbols found)...done.
Reading symbols from /usr/local/lib/php/extensions/debug-non-zts-20001222/php_apc.so...done.
Reading symbols from /usr/local/apache/libexec/mod_env.so...done.
Reading symbols from /usr/local/apache/libexec/mod_log_config.so...done.
Reading symbols from /usr/local/apache/libexec/mod_mime.so...done.
Reading symbols from /usr/local/apache/libexec/mod_negotiation.so...done.
Reading symbols from /usr/local/apache/libexec/mod_status.so...done.
Reading symbols from /usr/local/apache/libexec/mod_include.so...done.
Reading symbols from /usr/local/apache/libexec/mod_autoindex.so...done.
Reading symbols from /usr/local/apache/libexec/mod_dir.so...done.
Reading symbols from /usr/local/apache/libexec/mod_asis.so...done.
Reading symbols from /usr/local/apache/libexec/mod_imap.so...done.
Reading symbols from /usr/local/apache/libexec/mod_actions.so...done.
Reading symbols from /usr/local/apache/libexec/mod_userdir.so...done.
Reading symbols from /usr/local/apache/libexec/mod_alias.so...done.
Reading symbols from /usr/local/apache/libexec/mod_access.so...done.
Reading symbols from /usr/local/apache/libexec/mod_auth.so...done.
Reading symbols from /usr/local/apache/libexec/mod_setenvif.so...done.
Reading symbols from /usr/local/lib/libintl.so...done.
Reading symbols from /usr/local/lib/libnmz.so...done.
Reading symbols from /usr/lib/libm.so.2...done.
Reading symbols from /usr/local/lib/libpng.so...done.
Reading symbols from /usr/lib/libz.so.2...done.
Reading symbols from /usr/local/pgsql/lib/libpq.so...done.
Reading symbols from /usr/local/apache/libexec/libphp4.so...done.
Reading symbols from /usr/lib/libpam.so.1...done.
Reading symbols from /usr/local/apache/libexec/mod_cgi.so...done.
Reading symbols from /usr/local/apache/libexec/mod_gzip.so...done.
Reading symbols from /usr/local/lib/php/extensions/debug-non-zts-20001222/pgsql.so...done.
Reading symbols from /usr/local/lib/php/extensions/debug-non-zts-20001222/mbstring.so...done.
Reading symbols from /usr/local/lib/php/extensions/debug-non-zts-20001222/namazu.so...done.
Reading symbols from /usr/local/lib/php/extensions/debug-non-zts-20001222/gd.so...done.
Reading symbols from /usr/local/lib/libgd.so.2...done.
Reading symbols from /usr/local/lib/libt1.so.4...done.
Reading symbols from /usr/local/lib/libfreetype.so.7...done.
Reading symbols from /usr/X11R6/lib/libX11.so.6...done.
Reading symbols from /usr/X11R6/lib/libXpm.so.4...done.
Reading symbols from /usr/local/lib/libjpeg.so.9...done.
Reading symbols from /usr/libexec/ld-elf.so.1...done.
0x180edbc8 in accept () from /usr/lib/libc.so.3
(gdb) c
Program received signal SIGSEGV, Segmentation fault.
0x1821e10f in call_overloaded_function (T=0xa8a5b768, arg_count=0, return_value=0x811ae64) at ./zend_execute.c:855
/home/install/php/php-4.0.6/Zend/zend_execute.c:855:25047:beg:0x1821e10f
(gdb) bt
#0 0x1821e10f in call_overloaded_function (T=0xa8a5b768, arg_count=0, return_value=0x811ae64) at ./zend_execute.c:855
#1 0x18221f08 in execute (op_array=0x80b8624) at ./zend_execute.c:1566
#2 0x18350ac0 in apc_execute (op_array=0x80b8624) at apc_iface.c:493
#3 0x18233250 in zend_execute_scripts (type=8, file_count=3) at zend.c:752
#4 0x1824b633 in php_execute_script (primary_file=0xbfbfd6bc) at main.c:1206
#5 0x18246b7e in apache_php_module_main (r=0x80b206c, display_source_mode=0) at sapi_apache.c:89
#6 0x182478f8 in send_php (r=0x80b206c, display_source_mode=0, filename=0x80b24fc "/home/iwakiri/public_html/test/show_mail.php") at mod_php4.c:536
#7 0x1824793b in send_parsed_php (r=0x80b206c) at mod_php4.c:547
#8 0x8053ff9 in ap_invoke_handler ()
#9 0x806884f in ap_some_auth_required ()
#10 0x8068ca6 in ap_internal_redirect ()
#11 0x1833d796 in mod_gzip_redir1_handler () from /usr/local/apache/libexec/mod_gzip.so
#12 0x1833be30 in mod_gzip_handler () from /usr/local/apache/libexec/mod_gzip.so
#13 0x8053ff9 in ap_invoke_handler ()
#14 0x806884f in ap_some_auth_required ()
#15 0x80688b6 in ap_process_request ()
#16 0x805f776 in ap_child_terminate ()
#17 0x805f9f8 in ap_child_terminate ()
#18 0x805faac in ap_child_terminate ()
#19 0x80600cc in ap_child_terminate ()
#20 0x80608fc in main ()
#21 0x804ea4d in _start ()