[pgpool-general-jp: 656] Re: pgpool-ii 19ノード以上設定時のshow pool_status
Tatsuo Ishii
ishii @ sraoss.co.jp
2009年 12月 17日 (木) 22:45:24 JST
石井です。
> gdbの出力は下記のようになりました。
> OSはCentOS5.3を使用しています。
>
> 別端末のpsqlから show pool_status を入力後に (gdb) continue しています。取得方法はこれでよろしいでしょうか。
> ご指摘の通り、show pool status 後に接続していたpgpoolプロセスが落ちて、別PIDが生成されておりました。
バックトレースの取得方法はこれで良いのですが、派手にスタックを壊してい
るようで、せっかくのバックトレースも分からないものになっていますね。し
かし、改めてコードをじっくりみたら、思い当たる節がありました。よろしけ
れば以下のパッチを試してみていただけないでしょうか?
Index: pool_process_query.c
===================================================================
RCS file: /cvsroot/pgpool/pgpool-II/pool_process_query.c,v
retrieving revision 1.141.2.30
diff -c -r1.141.2.30 pool_process_query.c
*** pool_process_query.c 16 Dec 2009 09:23:26 -0000 1.141.2.30
--- pool_process_query.c 17 Dec 2009 13:40:28 -0000
***************
*** 1039,1047 ****
char desc[POOLCONFIG_MAXDESCLEN+1];
} POOL_REPORT_STATUS;
! #define MAXITEMS 128
! POOL_REPORT_STATUS status[MAXITEMS];
short nrows;
int size;
--- 1039,1053 ----
char desc[POOLCONFIG_MAXDESCLEN+1];
} POOL_REPORT_STATUS;
! /*
! * Report data buffer.
! * 128 is the max number of configuration items.
! * In addition, we need MAX_NUM_BACKENDS*4
! * for backend descriptions.
! */
! #define MAXITEMS (128 + MAX_NUM_BACKENDS*4)
! static POOL_REPORT_STATUS status[MAXITEMS];
short nrows;
int size;
pgpool-general-jp メーリングリストの案内