[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