[pgpool-general-jp: 587] Re: pgpool-IIのsegfaultについて

Tatsuo Ishii ishii @ sraoss.co.jp
2009年 8月 10日 (月) 17:49:00 JST


石井です。

レポートありがとうございます。

segfaultになる直接の原因は、pgpool-IIからPostgreSQLに対してコネクショ
ンを貼ろうとして失敗したことによるものです。このときpgpool-IIのログに
何かエラーメッセージが出ていると思うのですが、それを見せて頂けますか?
--
Tatsuo Ishii
SRA OSS, Inc. Japan

> 初めまして、上之薗と申します。
> 
> 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 mailing list
> pgpool-general-jp @ sraoss.jp
> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp


pgpool-general-jp メーリングリストの案内