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

donguri256 @ mac.com donguri256 @ mac.com
2006年 10月 9日 (月) 06:36:03 JST


どんぐりと申します。
session_start()を呼んだ個所で先へ進まなくなる、という現象が起きています。

-----------------
 :
funcA();
session_start();
funcB();
 :
-----------------
というとき、funcA()は実行されますが、session_start()の行で何かに引っかかったように進まなくなり、それ以降に進みません。
ブラウザで読み込み中が続き画面が白いままです。
(session_start()をいきなり実行しても同様です)


これの再現性が不定なので、原因が追えません。
思いつくまま調べてみると、
 [PHP-users 7687] session_start実行時にSegmentation faultが発生
 http://ml.php.gr.jp/pipermail/php-users/2002-May/007692.html
ととてもよく似ているようです。
似ているというのは、
 session_start()時に発生
 再現が不定
 リクエストの間隔が空いた朝一番等に頻繁に発生
などの要素です。
但し、Apacheのアクセスログやエラーログ、PHPのログも含め、エラーどころかなにも記録されていません。(他のエラーを意図的に発生させると記録されるので、記録の設定はおかしくないと思います。)
このスレッドでは結局、PHPのバージョンを上げるということで解決されているようですが、私のほうはPHP5.1.6なので、状況は違うように思います。

ちなみに、session_start()前のfuncA()が動作しているというのは、同スレッドのように
 exec("echo 'before' >> /tmp/execute_log 2>&1" );
 session_start();
 exec("echo 'after' >> /tmp/execute_log 2>&1" );
とすると、"before"だけは記録されるからです。


ひとつのサーバにて、複数のバーチャルドメインで複数のアプリケーションを動かしていますが、他のアプリケーションは問題が発生しないようです。
問題が発生した場合、1〜2分間待っているとアクセスできる場合と、ブラウザから読み込めませんでしたと言われる場合があります。
一度アクセスできると、またリクエストの間隔が空くまでは再現しません。
また、問題の出ているアプリケーションにアクセスして、とあるクライアントから問題が確認されているときでも、別のクライアントからは問題なくアクセスできる場合もあります。
「ようです」や「もあります」など曖昧ですみませんが、不定なので断言できずにすみません。
現在は再現するたびにApacheを再起動するという、なんとも情けない対応をしています。


環境は以下です。関係あるかわからないものも一応列挙させていただきます。eAcceleratorなどは一度外してみましたが状況は変わりませんでした。
 PHP 5.1.6
 eAccelerator v0.9.5-rc1
 Apache 1.3.3
 PostgreSQL 8.1.4
 Mac OS X 1.4.8

本当はもっと環境や設定などの情報をお書きするべきなのですが、どの辺が材料になるかもまったく見当がつきません。
それも含め、なにかお気づきのことがありましたらご指摘いただけますでしょうか。
長くなってしまいすみませんが、コンパイルオプション(entropyのパッケージをインストール<http://www.entropy.ch/software/macosx/php/>)と、あとセッション関連で引っかかっているので、php_infoのセッションの段落も書かせていただきます。


'./configure' '--prefix=/usr/local/php5' '--with-apxs' '--with-config-file-scan-dir=/usr/local/php5/php.d' '--with-iconv' '--with-openssl=/usr' '--with-zlib=/usr' '--with-gd' '--with-zlib-dir=/usr' '--with-ldap' '--with-xmlrpc' '--with-iconv-dir=/usr' '--with-snmp=/usr' '--enable-exif' '--enable-wddx' '--enable-soap' '--enable-sqlite-utf8' '--enable-ftp' '--enable-sockets' '--enable-dbx' '--enable-dbase' '--enable-mbstring' '--enable-calendar' '--enable-bcmath' '--with-bz2=/usr' '--with-curl=shared,/usr/local/php5' '--with-mysql=shared,/usr/local/php5' '--with-mysqli=shared,/usr/local/php5/bin/mysql_config' '--with-pdo-mysql=shared,/usr/local/php5' '--with-libxml-dir=shared,/usr/local/php5' '--with-xsl=shared,/usr/local/php5' '--with-pdflib=shared,/usr/local/php5' '--with-imap=../imap-2004g' '--with-kerberos=/usr' '--with-imap-ssl=/usr' '--with-jpeg-dir=/usr/local/php5' '--with-png-dir=/usr/local/php5' '--enable-gd-native-ttf' '--with-freetype-dir=/usr/local/php5' '--with-iodbc=shared,/usr' '--with-pgsql=shared,/usr/local/php5' '--with-pdo-pgsql=shared,/usr/local/php5' '--with-t1lib=/usr/local/php5' '--with-gettext=shared,/usr/local/php5' '--with-ming=shared,/usr/local/php5' '--with-mcrypt=shared,/usr/local/php5' '--with-mhash=shared,/usr/local/php5' '--with-mssql=shared,/usr/local/php5' '--with-fbsql=shared,/Users/liyanage/svn/entropy/universalbuild/src/FBDeveloperLibraries/Library/FrontBase' '--with-json=shared' '--enable-memcache'


Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary wddx

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 50 50
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0


直接の解決法でなくとも、なにか気になる点がありましたら何卒ご教授願います。
よろしくお願いします。

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



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