[PHP-users 30546] Re: session_start()から先に進まない

donguri256 @ mac.com donguri256 @ mac.com
2006年 10月 16日 (月) 18:32:44 JST


質問者のどんぐりです。松本様ご返答ありがとうございます。


> よって今後の方針としては、もし止まってしまったらlsofで
> セッションファイルのオープン状況を確認。その時2つ以上の
> プロセスでセッションファイルを開いていたら、それは
> 「障害B」が発生している。セッションファイルをオープン
> しているのが1つだけなら「障害A」が発生している状態で
> あると仮定し、調査を行う。

具体的にありがとうございます。
いまのところ、「障害B」は見られません。たまたまか、わかりませんが。

> 「障害A」が発生し
> ている時は、session_start()ではなく、別の所で止まっている
> かも知れません。その箇所が見つけられれば、問題解決に近づく
> と思います。

これについては、田中様の

> error_log( date("[H:i:s]") . "CHECK POINT 1", 0);
>
> とかスクリプトの適度なところに入れておいて、どこでとまっているか調べて
> みてはどうでしょうか?

に従い
-----
<?php
 error_log( date("[H:i:s]") . "CHECK POINT 1", 0);
  session_start();
 error_log( date("[H:i:s]") . "CHECK POINT 2", 0);
  :
  :
-----
としてみましたが、"CHECK POINT 1"のみロギングされて進まないので、やはりsession_start()なのだと思っています。


> 具体的な方法ですが、gdbを使ってみると良いと思います。
> 「障害A」の発生時に、
>
> gdb /[apacheのパス]/bin/httpd
> (gdb) attach [「障害A」発生中のhttpdのPID]
> (gdb) bt

数回おこないましたが、さっきは#47のstartup_children()の行が無くその他は同じでした。
私はまだ見方がよくわからないのですが、これはADODB経由で使っているPostgreSQLの、ポーリングで帰ってきてないということなのでしょうか…?


(gdb) bt
#0  0x900bc8bc in poll ()
#1  0x0149ad09 in pqSocketPoll ()
#2  0x0149abd2 in pqSocketCheck ()
#3  0x0149aab5 in pqWaitTimed ()
#4  0x0149aa87 in pqWait ()
#5  0x01497b5e in PQgetResult ()
#6  0x0149805c in PQexecFinish ()
#7  0x01497d2b in PQexec ()
#8  0x056bb924 in php_pgsql_do_connect ()
#9  0x056bbd8b in zif_pg_pconnect ()
#10 0x02359379 in zend_do_fcall_common_helper_SPEC ()
#11 0x0235ec71 in ZEND_DO_FCALL_SPEC_CONST_HANDLER ()
#12 0x02358ea8 in execute ()
#13 0x02359511 in zend_do_fcall_common_helper_SPEC ()
#14 0x0235a1ab in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER ()
#15 0x02358ea8 in execute ()
#16 0x02359511 in zend_do_fcall_common_helper_SPEC ()
#17 0x0235a1ab in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER ()
#18 0x02358ea8 in execute ()
#19 0x02359511 in zend_do_fcall_common_helper_SPEC ()
#20 0x0235a1ab in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER ()
#21 0x02358ea8 in execute ()
#22 0x02359511 in zend_do_fcall_common_helper_SPEC ()
#23 0x0235a1ab in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER ()
#24 0x02358ea8 in execute ()
#25 0x02359511 in zend_do_fcall_common_helper_SPEC ()
#26 0x0235a1ab in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER ()
#27 0x02358ea8 in execute ()
#28 0x02359511 in zend_do_fcall_common_helper_SPEC ()
#29 0x0235a1ab in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER ()
#30 0x02358ea8 in execute ()
#31 0x02359511 in zend_do_fcall_common_helper_SPEC ()
#32 0x0235a1ab in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER ()
#33 0x02358ea8 in execute ()
#34 0x02359511 in zend_do_fcall_common_helper_SPEC ()
#35 0x0235a1ab in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER ()
#36 0x02358ea8 in execute ()
#37 0x02338c38 in zend_execute_scripts ()
#38 0x022e8fb3 in php_execute_script ()
#39 0x023a6730 in apache_php_module_main ()
#40 0x023a784e in send_php ()
#41 0x023a78d2 in send_parsed_php ()
#42 0x00005861 in ap_invoke_handler ()
#43 0x000192d1 in process_request_internal ()
#44 0x000199c4 in ap_process_request ()
#45 0x000101e3 in child_main ()
#46 0x00010742 in make_child ()
#47 0x000107b2 in startup_children ()
#48 0x0001115b in standalone_main ()
#49 0x0001253c in main ()
(gdb)


---
どんぐり
donguri256 @ mac.com




PHP-users メーリングリストの案内