[PHP-dev 345] windows上でのDSO使用時、parse_ini_fileがこける

tamagawa ryuji php-dev@php.gr.jp
Thu, 02 May 2002 11:19:13 +0900


玉川@STSです。こちらへのポストは初めてです。

現在仕事で開発しているシステムで、どうやらparse_ini_file関数
が問題を起こしているようなので報告させていただこうかと思います。

windows2000pro+apache1.3.24/2.0.35+php4.1/4.2の組み合わせで、
phpをdso版として設定し、parse_ini_file関数を頻繁に読んだ場合、
apacheの子プロセスが不正なメモリアクセス(「メモリがreadにな
れませんでした」とか言うメッセージ)を表示してこけてしまいます。

ソースは提示できませんが、parse_ini_fileを使っている関数を
書き換えて、使用しなくしただけで落ちなくなりましたので、ほぼ
間違いないように思われます。

phpをexe版で設定した場合には、parse_ini_fileも問題を起こしません。

windows版におけるparse_ini_fileがスレッド・セーフになっていない
といったことなのでしょうか?Changelogによれば、php4.0.4において
parse_ini_fileがスレッドセーフになり、windows版にも実装された
とありますが、スレッドセーフなのはUnix系だけなのでしょうか。

ということで、ちょっとdevにポストするかuserにポストするか
迷いましたが、障害事例の報告ということで・・・
--
玉川@STS