Mac OS X环境下Apache HTTPD中调用pg_connect连接PostgreSQL 15时触发段错误崩溃求助
Mac OS X环境下Apache HTTPD中调用pg_connect连接PostgreSQL 15时触发段错误崩溃求助
我最近碰到个棘手的问题,想请各位帮忙分析下:我的PHP Web应用在Mac OS X本地机器上调用pg_connect时会直接崩溃,但在RHEL8服务器上运行完全正常。
这个问题只在两种特定情况下出现:
- 连接的是PostgreSQL 15版本的数据库服务器
- 应用通过Apache HTTPD运行(CLI命令行模式下执行完全没问题)
补充一下:如果连接的是PostgreSQL 9.0版本的服务器,不管是CLI还是Apache HTTPD环境,脚本都能正常工作。我本地使用的PHP版本是7.4.33。
当崩溃发生时,Apache的error_log里只输出了这段信息:
[Sat Nov 09 12:25:42.609490 2024] [core:notice] [pid 39732] AH00052: child pid 51781 exit signal Segmentation fault (11)
我写了个极简的测试脚本复现问题,代码如下:
<?php $connString="host=<host> port=<port> user=<username> password=<password> dbname=<dbname> sslmode=disable"; $conn = pg_connect($connString); echo "conn: [$conn]"; $result = pg_query($conn, "select 1"); echo "result: ". $result; var_dump(pg_fetch_all($result)); ?>
另外,我从phpinfo()里提取了pgsql相关的配置信息:
pgsql PostgreSQL Support enabled PostgreSQL(libpq) Version 16.3 PostgreSQL(libpq) PostgreSQL 16.3 on aarch64-apple-darwin23.4.0, compiled by Apple clang version 15.0.0 (clang-1500.3.9.4), 64-bit Multibyte character support enabled SSL support enabled Active Persistent Links 0 Active Links 0
目前除了这个段错误提示,没有其他更详细的错误日志。我试过设置sslmode=disable和不设置该参数,结果都一样;也测试了两台不同的PostgreSQL 15.x服务器(分别是15.8和15.9版本),都会触发崩溃。
想请教下大家,还有什么排查手段能帮我定位具体问题?或者我还需要提供哪些额外的信息?
备注:内容来源于stack exchange,提问作者alessandro ferrucci
相关产品推荐
相关产品推荐

