[PHP-dev 293] pg_last_notice crash?
Tatsuo Ishii
php-dev@php.gr.jp
Wed, 10 Apr 2002 11:23:58 +0900
石井です.かなりの確率で,以下のスクリプトがクラッシュします(落ちてい
るのはshutdown処理のようです.backtraceを付けておきます).
<?php
$con = pg_pconnect("dbname=test user=nobody options='-c sort_mem=1024'");
if ($con == false) {
printf("データベースに接続できません.理由: %s<br>\n",
$php_errormsg);
}
pg_exec($con,"show sort_mem");
printf("%s<br>\n",pg_last_notice($con));
pg_close($con);
?>
落ちる要件としては,一度PostgreSQLの接続をしたプロセスが再び呼ば
れてpersistent connectionを再利用した後のようです.こちらの環境は,
Vine Linux 2.1
Apache 1.3.23
php-4.1.2
PostgreSQL 7.2.1
です.phpのconfigオプションは,
/configure --without-mysql --with-apxs=/usr/local/apache/bin/apxs
--enable-mbstr-enc-trans --enable-mbstring --enable-versioning
--enable-trans-sid
で,PostgreSQLは拡張モジュールとしてインストールしているので,
extension=pgsql.so
をphp.iniに書いています.
Program received signal SIGSEGV, Segmentation fault.
0x2ab66b45 in chunk_free (ar_ptr=0x2abf5e20, p=0x8107140) at malloc.c:3100
3100 malloc.c: そのようなファイルやディレクトリはありません.
(gdb) where
#0 0x2ab66b45 in chunk_free (ar_ptr=0x2abf5e20, p=0x8107140) at malloc.c:3100
#1 0x2ab66a18 in __libc_free (mem=0x81073b0) at malloc.c:3023
#2 0x2ac26389 in objects () at tsrm_virtual_cwd.c:403
#3 0x2ac4cac6 in objects () at tsrm_virtual_cwd.c:403
#4 0x2ac49e88 in objects () at tsrm_virtual_cwd.c:403
#5 0x2ac4a903 in objects () at tsrm_virtual_cwd.c:403
#6 0x2ac4a964 in objects () at tsrm_virtual_cwd.c:403
#7 0x80629b1 in ap_invoke_handler () at tsrm_virtual_cwd.c:403
#8 0x807061b in process_request_internal () at tsrm_virtual_cwd.c:403
#9 0x807066b in ap_process_request () at tsrm_virtual_cwd.c:403
#10 0x806a8e0 in child_main () at tsrm_virtual_cwd.c:403
#11 0x806aaa6 in make_child () at tsrm_virtual_cwd.c:403
#12 0x806ab19 in startup_children () at tsrm_virtual_cwd.c:403
#13 0x806aff0 in standalone_main () at tsrm_virtual_cwd.c:403
#14 0x806b5ff in main () at tsrm_virtual_cwd.c:403
#15 0x2ab2da1e in __libc_start_main (main=0x806b390 <main>, argc=1,
argv=0x7ffffd94, init=0x804ecf0 <_init>, fini=0x808cb9c <_fini>,
rtld_fini=0x2aab5cf0 <_dl_fini>, stack_end=0x7ffffd8c)
at ../sysdeps/generic/libc-start.c:92
(gdb)
--
Tatsuo Ishii