[pgpool-general-jp: 586] pgpool-IIのsegfaultについて
kaminosono
tooru0316 @ gmail.com
2009年 8月 10日 (月) 10:10:54 JST
初めまして、上之薗と申します。
pgpool周りでコネクションが異常になる障害が多発していたので、
調査していたところ、segfaultがログに出力されていました。
原因として考えられそうな事象、対処方法などご存じではないでしょうか?
[発生した環境]
OS:
CentOS 5.3 64bit
PostgreSQL:
ここからダウンロードしたrpmを使用しました。
https://projects.commandprompt.com/public/pgcore
postgresql.x86_64 8.3.7-1PGDG.rhel5
postgresql-devel.x86_64 8.3.7-1PGDG.rhel5
postgresql-libs.x86_64 8.3.7-1PGDG.rhel5
postgresql-server.x86_64 8.3.7-1PGDG.rhel5
pgpool:
pgpool-II 2.2.2、最新のCVSのソース(8月7日時点)で確認しましたが結果は同じでした。
[詳細]
下記のページを参考にして、segfault時にコアダンプを取得しました。
http://www.mail-archive.com/pgpool-general@pgfoundry.org/msg01076.html
コアダンプの内容をみると、pool_stream.cの320行目でコケているようです。
====================================================================================
# gdb /usr/local/pgpool/bin/pgpool core.5309
Core was generated by `pgpool: accept connection
'.
Program terminated with signal 11, Segmentation fault.
[New process 5309]
#0 pool_write (cp=0x554245442036313a, buf=0x4572cf, len=1) at pool_stream.c:320
320 if (cp->no_forward)
(gdb) bt
#0 pool_write (cp=0x554245442036313a, buf=0x4572cf, len=1) at pool_stream.c:320
#1 0x0000000000412ca5 in pool_send_frontend_exits (backend=0xe7d88e0)
at pool_process_query.c:1482
#2 0x0000000000406dd6 in send_frontend_exits () at child.c:1318
#3 0x0000000000406e5d in child_exit (code=1) at child.c:1382
#4 0x0000000000418f88 in new_connection (p=0xe7d88e0) at
pool_connection_pool.c:597
#5 0x000000000040848d in do_child (unix_fd=6, inet_fd=7) at child.c:1155
#6 0x000000000040412a in fork_a_child (unix_fd=6, inet_fd=7, id=0) at
main.c:828
#7 0x00000000004058de in main (argc=<value optimized out>,
argv=<value optimized out>) at main.c:434
=====================================================================================================
pool_stream.cの320行目でチェックをしています。
-- pool_stream.c抜粋 --
if (cp->no_forward)
return 0;
たぶん、cp->no_forwardがおかしなところを参照していると思われます。
以上、よろしくお願い致します。
pgpool-general-jp メーリングリストの案内