Hi Tatsuo,<br>Just an update: based on your comment:<br>&gt;  Probably there&#39;s something wrong with the extended query protocol (JDBC)<br><br>I have switched the JDBC from v3 to v2 (Passing protocolVersion=2 to it) as this<br>

will effectively disable extended query. Since doing so (It&#39;s been ~4 days) pgpool<br>is yet to crash. Good news thus far.<br><br>If (when) a fix for the original issue is found, please do tell.<br><br><br>Thanks and Regards,<br>

James Elsdon<br><br><div class="gmail_quote">On Wed, Dec 21, 2011 at 12:45 PM, Tatsuo Ishii <span dir="ltr">&lt;<a href="mailto:ishii@postgresql.org">ishii@postgresql.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">&gt;&gt; Thanks for the report. It seems parse tree data was overwritten by<br>
&gt;&gt; garbage.  Do you have self contained test case?<br>
&gt;<br>
&gt; Unfortunately this is not something that I have been able to reproduce<br>
&gt; manually with a<br>
&gt; 100% strike rate. Re-running the same query in a loop will often see a few<br>
&gt; crashes per<br>
&gt; hour but this is as best as I have been able to manage.<br>
&gt;<br>
&gt; Please find attached core dumps of the process along with the pgpool<br>
&gt; configuration (Separate email) .<br>
&gt; Passwords and addresses have been removed from the configuration.<br>
&gt;<br>
&gt; In our live system, it would appear to occur in the order of once every 5<br>
&gt; minutes. Production<br>
&gt; utilises connection pools.<br>
<br>
</div>You have a segfault every 5 minutes? Too bad. Probably there&#39;s<br>
something wrong with the extended query protocol(via JDBC) and<br>
replication mode. Will look into...<br>
<div class="HOEnZb"><div class="h5">--<br>
Tatsuo Ishii<br>
SRA OSS, Inc. Japan<br>
English: <a href="http://www.sraoss.co.jp/index_en.php" target="_blank">http://www.sraoss.co.jp/index_en.php</a><br>
Japanese: <a href="http://www.sraoss.co.jp" target="_blank">http://www.sraoss.co.jp</a><br>
<br>
&gt; Regards,<br>
&gt; James Elsdon<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;&gt; Hello,<br>
&gt;&gt; &gt; Firstly thanks for pgpool.<br>
&gt;&gt;<br>
&gt;&gt; You are welcome!<br>
&gt;&gt;<br>
&gt;&gt; &gt; PGPool (confirmed in 3.0.3 and 3.0.5, did not use 3.0.4) will produce the<br>
&gt;&gt; &gt; following behaviour<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; pgpool[22132] general protection rip:41668d rsp:7fffb04a0d90 error:0<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Core dump details below:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; #0  0x000000000041668d in is_sequence_query (node=0x5ff438) at<br>
&gt;&gt; &gt; pool_process_query.c:1528<br>
&gt;&gt; &gt; #1  0x00000000004442fe in pool_where_to_send (query_context=0x602a70,<br>
&gt;&gt; &gt;     query=0x5fddb8 &quot;SELECT aaaaaaa, pppppppp, cccc, rrrrrrr, aaaaaa,<br>
&gt;&gt; &gt; cccccccc, fffffffff, sssssss, ddd, gggggg, ppppp, mmmmmm FROM<br>
&gt;&gt; aaaaaaa_ccccc<br>
&gt;&gt; &gt; WHERE aaaaaaa=$1&quot;, node=0x5ff438) at pool_query_context.c:447<br>
&gt;&gt; &gt; 447                     if (is_select_query(node, query) &amp;&amp;<br>
&gt;&gt; &gt; !is_sequence_query(node))<br>
&gt;&gt; &gt; #2  0x0000000000440b15 in Parse (frontend=0x5f3070, backend=0x5f2040,<br>
&gt;&gt; &gt; len=149, contents=0x610210 &quot;&quot;) at pool_proto_modules.c:702<br>
&gt;&gt; &gt; 702                     pool_where_to_send(query_context,<br>
&gt;&gt; &gt; query_context-&gt;original_query,<br>
&gt;&gt; &gt; #3  0x0000000000441d50 in ProcessFrontendResponse (frontend=0x5f3070,<br>
&gt;&gt; &gt; backend=0x5f2040) at pool_proto_modules.c:2007<br>
&gt;&gt; &gt; 2007                            status = Parse(frontend, backend, len,<br>
&gt;&gt; &gt; contents);<br>
&gt;&gt; &gt; #4  0x00000000004163eb in pool_process_query (frontend=0x5f3070,<br>
&gt;&gt; &gt; backend=0x5f2040, reset_request=0) at pool_process_query.c:344<br>
&gt;&gt; &gt; 344                                             status =<br>
&gt;&gt; &gt; ProcessFrontendResponse(frontend, backend);<br>
&gt;&gt; &gt; #5  0x00000000004094c2 in do_child (unix_fd=4, inet_fd=5) at child.c:328<br>
&gt;&gt; &gt; 328                             status = pool_process_query(frontend,<br>
&gt;&gt; &gt; backend, 0);<br>
&gt;&gt; &gt; #6  0x0000000000403f75 in fork_a_child (unix_fd=4, inet_fd=5, id=30) at<br>
&gt;&gt; &gt; main.c:1033<br>
&gt;&gt; &gt; 1033                    do_child(unix_fd, inet_fd);<br>
&gt;&gt; &gt; #7  0x00000000004068f5 in main (argc=&lt;value optimized out&gt;, argv=&lt;value<br>
&gt;&gt; &gt; optimized out&gt;) at main.c:517<br>
&gt;&gt; &gt; 517                     process_info[i].pid = fork_a_child(unix_fd,<br>
&gt;&gt; &gt; inet_fd, i);<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Core was generated by `pgpool: sss sss 10.10.10.11(3766&#39;.<br>
&gt;&gt; &gt; Program terminated with signal 11, Segmentation fault.<br>
&gt;&gt; &gt; #0  0x000000000041668d in is_sequence_query (node=0x5ff438) at<br>
&gt;&gt; &gt; pool_process_query.c:1528<br>
&gt;&gt; &gt; 1528                    if (IsA(lfirst(lc), ResTarget))<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; (gdb) print lc-&gt;data.ptr_value<br>
&gt;&gt; &gt; $5 = (void *) 0x73202c656d616e74<br>
&gt;&gt; &gt; (gdb) print (int)lc-&gt;data.ptr_value<br>
&gt;&gt; &gt; $6 = 1835101812<br>
&gt;&gt; &gt; (gdb) print (ResTarget)lc-&gt;data.ptr_value<br>
&gt;&gt; &gt; $7 = {type = 1835101812, name = 0x202c656d616e7275 &lt;Address<br>
&gt;&gt; &gt; 0x202c656d616e7275 out of bounds&gt;, indirection = 0x6e6567202c626f64, val<br>
&gt;&gt; =<br>
&gt;&gt; &gt; 0x6f6870202c726564, location = 539780462}<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Host Details:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Linux PGPOOL01 2.6.16.60-0.21-smp #1 SMP Tue May 6 12:41:02 UTC 2008<br>
&gt;&gt; x86_64<br>
&gt;&gt; &gt; x86_64 x86_64 GNU/Linux<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; gcc -v<br>
&gt;&gt; &gt; Using built-in specs.<br>
&gt;&gt; &gt; Target: x86_64-suse-linux<br>
&gt;&gt; &gt; Configured with: ../configure --enable-threads=posix --prefix=/usr<br>
&gt;&gt; &gt; --with-local-prefix=/usr/local --infodir=/usr/share/info<br>
&gt;&gt; &gt; --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64<br>
&gt;&gt; &gt; --enable-langux<br>
&gt;&gt; &gt; Thread model: posix<br>
&gt;&gt; &gt; gcc version 4.1.2 20070115 (SUSE Linux)<br>
&gt;&gt;<br>
&gt;&gt; Thanks for the report. It seems parse tree data was overwritten by<br>
&gt;&gt; garbage.  Do you have self contained test case?<br>
&gt;&gt; --<br>
&gt;&gt; Tatsuo Ishii<br>
&gt;&gt; SRA OSS, Inc. Japan<br>
&gt;&gt; English: <a href="http://www.sraoss.co.jp/index_en.php" target="_blank">http://www.sraoss.co.jp/index_en.php</a><br>
&gt;&gt; Japanese: <a href="http://www.sraoss.co.jp" target="_blank">http://www.sraoss.co.jp</a><br>
&gt;&gt;<br>
</div></div></blockquote></div><br>