<div dir="ltr">Hi Ishii-San<div><br></div><div>I have pushed the fix for this one.</div><div><br></div><div>Thanks</div><div>Best Regards</div><div>Muhammad Usama</div><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 22, 2017 at 3:30 PM, Muhammad Usama <span dir="ltr">&lt;<a href="mailto:m.usama@gmail.com" target="_blank">m.usama@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I am looking into this<br>
<br>
Thanks<br>
Best regards<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
&gt; On 22-May-2017, at 1:49 PM, Tatsuo Ishii &lt;<a href="mailto:ishii@sraoss.co.jp">ishii@sraoss.co.jp</a>&gt; wrote:<br>
&gt;<br>
&gt; Usama,<br>
&gt;<br>
&gt; From commit:<br>
&gt; <a href="https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=18f4d2ea08c2562361858b09534490a6fa09d496" rel="noreferrer" target="_blank">https://git.postgresql.org/<wbr>gitweb/?p=pgpool2.git;a=<wbr>commit;h=<wbr>18f4d2ea08c2562361858b09534490<wbr>a6fa09d496</a><br>
&gt; &quot;Allow to configure health check parameters for each individual node.&quot;<br>
&gt;<br>
&gt; I have been experincing regression failure on my Ubuntu 17 laptop.<br>
&gt; Actually it is caused by pg_md5 segfault. For example following<br>
&gt; command reliably segfaults.<br>
&gt;<br>
&gt; $ temp/installed/bin/pg_md5 -m -f tests/001.load_balance/<wbr>testdir/etc/pgpool.conf -u aaa aaa<br>
&gt;<br>
&gt; Here&#39;s the stack trace info.<br>
&gt;<br>
&gt; $ gdb temp/installed/bin/pg_md5<br>
&gt; GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1<br>
&gt; Copyright (C) 2016 Free Software Foundation, Inc.<br>
&gt; License GPLv3+: GNU GPL version 3 or later &lt;<a href="http://gnu.org/licenses/gpl.html" rel="noreferrer" target="_blank">http://gnu.org/licenses/gpl.<wbr>html</a>&gt;<br>
&gt; This is free software: you are free to change and redistribute it.<br>
&gt; There is NO WARRANTY, to the extent permitted by law.  Type &quot;show copying&quot;<br>
&gt; and &quot;show warranty&quot; for details.<br>
&gt; This GDB was configured as &quot;x86_64-linux-gnu&quot;.<br>
&gt; Type &quot;show configuration&quot; for configuration details.<br>
&gt; For bug reporting instructions, please see:<br>
&gt; &lt;<a href="http://www.gnu.org/software/gdb/bugs/" rel="noreferrer" target="_blank">http://www.gnu.org/software/<wbr>gdb/bugs/</a>&gt;.<br>
&gt; Find the GDB manual and other documentation resources online at:<br>
&gt; &lt;<a href="http://www.gnu.org/software/gdb/documentation/" rel="noreferrer" target="_blank">http://www.gnu.org/software/<wbr>gdb/documentation/</a>&gt;.<br>
&gt; For help, type &quot;help&quot;.<br>
&gt; Type &quot;apropos word&quot; to search for commands related to &quot;word&quot;...<br>
&gt; Reading symbols from temp/installed/bin/pg_md5...<wbr>done.<br>
&gt; (gdb) run  -m -f tests/001.load_balance/<wbr>testdir/etc/pgpool.conf -u aaa aaa<br>
&gt; Starting program: /home/t-ishii/tmp/pgpool2-<wbr>18f4d2e/src/test/regression/<wbr>temp/installed/bin/pg_md5 -m -f tests/001.load_balance/<wbr>testdir/etc/pgpool.conf -u aaa aaa<br>
&gt; *** Error in `/home/t-ishii/tmp/pgpool2-<wbr>18f4d2e/src/test/regression/<wbr>temp/installed/bin/pg_md5&#39;: free(): invalid next size (fast): 0x0000000000652c60 ***<br>
&gt; ======= Backtrace: =========<br>
&gt; /lib/x86_64-linux-gnu/libc.so.<wbr>6(+0x777e5)[0x7ffff7a857e5]<br>
&gt; /lib/x86_64-linux-gnu/libc.so.<wbr>6(+0x7fe0a)[0x7ffff7a8de0a]<br>
&gt; /lib/x86_64-linux-gnu/libc.so.<wbr>6(cfree+0x4c)[0x7ffff7a9198c]<br>
&gt; /lib/x86_64-linux-gnu/libc.so.<wbr>6(+0xe0224)[0x7ffff7aee224]<br>
&gt; /lib/x86_64-linux-gnu/libc.so.<wbr>6(regcomp+0xbf)[<wbr>0x7ffff7af569f]<br>
&gt; /home/t-ishii/tmp/pgpool2-<wbr>18f4d2e/src/test/regression/<wbr>temp/installed/bin/pg_md5[<wbr>0x408b6b]<br>
&gt; /home/t-ishii/tmp/pgpool2-<wbr>18f4d2e/src/test/regression/<wbr>temp/installed/bin/pg_md5[<wbr>0x404e84]<br>
&gt; /home/t-ishii/tmp/pgpool2-<wbr>18f4d2e/src/test/regression/<wbr>temp/installed/bin/pg_md5[<wbr>0x407507]<br>
&gt; /home/t-ishii/tmp/pgpool2-<wbr>18f4d2e/src/test/regression/<wbr>temp/installed/bin/pg_md5[<wbr>0x40887e]<br>
&gt; /home/t-ishii/tmp/pgpool2-<wbr>18f4d2e/src/test/regression/<wbr>temp/installed/bin/pg_md5[<wbr>0x401d6c]<br>
&gt; /home/t-ishii/tmp/pgpool2-<wbr>18f4d2e/src/test/regression/<wbr>temp/installed/bin/pg_md5[<wbr>0x401aa8]<br>
&gt; /lib/x86_64-linux-gnu/libc.so.<wbr>6(__libc_start_main+0xf0)[<wbr>0x7ffff7a2e830]<br>
&gt; /home/t-ishii/tmp/pgpool2-<wbr>18f4d2e/src/test/regression/<wbr>temp/installed/bin/pg_md5[<wbr>0x401c29]<br>
&gt; ======= Memory map: ========<br>
&gt; 00400000-00411000 r-xp 00000000 08:05 16694994                           /home/t-ishii/tmp/pgpool2-<wbr>18f4d2e/src/test/regression/<wbr>temp/installed/bin/pg_md5<br>
&gt; 00610000-00611000 r--p 00010000 08:05 16694994                           /home/t-ishii/tmp/pgpool2-<wbr>18f4d2e/src/test/regression/<wbr>temp/installed/bin/pg_md5<br>
&gt; 00611000-00617000 rw-p 00011000 08:05 16694994                           /home/t-ishii/tmp/pgpool2-<wbr>18f4d2e/src/test/regression/<wbr>temp/installed/bin/pg_md5<br>
&gt; 00617000-00655000 rw-p 00000000 00:00 0                                  [heap]<br>
&gt; 7ffff0000000-7ffff0021000 rw-p 00000000 00:00 0<br>
&gt; 7ffff0021000-7ffff4000000 ---p 00000000 00:00 0<br>
&gt; 7ffff77f8000-7ffff780e000 r-xp 00000000 08:05 12062567                   /lib/x86_64-linux-gnu/libgcc_<wbr>s.so.1<br>
&gt; 7ffff780e000-7ffff7a0d000 ---p 00016000 08:05 12062567                   /lib/x86_64-linux-gnu/libgcc_<wbr>s.so.1<br>
&gt; 7ffff7a0d000-7ffff7a0e000 rw-p 00015000 08:05 12062567                   /lib/x86_64-linux-gnu/libgcc_<wbr>s.so.1<br>
&gt; 7ffff7a0e000-7ffff7bcd000 r-xp 00000000 08:05 12183870                   /lib/x86_64-linux-gnu/<a href="http://libc-2.23.so" rel="noreferrer" target="_blank">libc-2.<wbr>23.so</a><br>
&gt; 7ffff7bcd000-7ffff7dcd000 ---p 001bf000 08:<a href="tel:05%2012183870" value="+92512183870">05 12183870</a>                   /lib/x86_64-linux-gnu/<a href="http://libc-2.23.so" rel="noreferrer" target="_blank">libc-2.<wbr>23.so</a><br>
&gt; 7ffff7dcd000-7ffff7dd1000 r--p 001bf000 08:<a href="tel:05%2012183870" value="+92512183870">05 12183870</a>                   /lib/x86_64-linux-gnu/<a href="http://libc-2.23.so" rel="noreferrer" target="_blank">libc-2.<wbr>23.so</a><br>
&gt; 7ffff7dd1000-7ffff7dd3000 rw-p 001c3000 08:<a href="tel:05%2012183870" value="+92512183870">05 12183870</a>                   /lib/x86_64-linux-gnu/<a href="http://libc-2.23.so" rel="noreferrer" target="_blank">libc-2.<wbr>23.so</a><br>
&gt; 7ffff7dd3000-7ffff7dd7000 rw-p 00000000 00:00 0<br>
&gt; 7ffff7dd7000-7ffff7dfd000 r-xp 00000000 08:05 12183871                   /lib/x86_64-linux-gnu/<a href="http://ld-2.23.so" rel="noreferrer" target="_blank">ld-2.23.<wbr>so</a><br>
&gt; 7ffff7fd2000-7ffff7fd5000 rw-p 00000000 00:00 0<br>
&gt; 7ffff7ff5000-7ffff7ff8000 rw-p 00000000 00:00 0<br>
&gt; 7ffff7ff8000-7ffff7ffa000 r--p 00000000 00:00 0                          [vvar]<br>
&gt; 7ffff7ffa000-7ffff7ffc000 r-xp 00000000 00:00 0                          [vdso]<br>
&gt; 7ffff7ffc000-7ffff7ffd000 r--p 00025000 08:05 12183871                   /lib/x86_64-linux-gnu/<a href="http://ld-2.23.so" rel="noreferrer" target="_blank">ld-2.23.<wbr>so</a><br>
&gt; 7ffff7ffd000-7ffff7ffe000 rw-p 00026000 08:<a href="tel:05%2012183871" value="+92512183871">05 12183871</a>                   /lib/x86_64-linux-gnu/<a href="http://ld-2.23.so" rel="noreferrer" target="_blank">ld-2.23.<wbr>so</a><br>
&gt; 7ffff7ffe000-7ffff7fff000 rw-p 00000000 00:00 0<br>
&gt; 7ffffffde000-7ffffffff000 rw-p 00000000 00:00 0                          [stack]<br>
&gt; ffffffffff600000-<wbr>ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]<br>
&gt;<br>
&gt; Program received signal SIGABRT, Aborted.<br>
&gt; 0x00007ffff7a43428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/<wbr>raise.c:54<br>
&gt; 54    ../sysdeps/unix/sysv/linux/<wbr>raise.c: そのようなファイルやディレクトリはありません.<br>
&gt; (gdb) bt<br>
&gt; #0  0x00007ffff7a43428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/<wbr>raise.c:54<br>
&gt; #1  0x00007ffff7a4502a in __GI_abort () at abort.c:89<br>
&gt; #2  0x00007ffff7a857ea in __libc_message (do_abort=do_abort@entry=2,<br>
&gt;    fmt=fmt@entry=0x7ffff7b9e2e0 &quot;*** Error in `%s&#39;: %s: 0x%s ***\n&quot;)<br>
&gt;    at ../sysdeps/posix/libc_fatal.c:<wbr>175<br>
&gt; #3  0x00007ffff7a8de0a in malloc_printerr (ar_ptr=&lt;optimized out&gt;, ptr=&lt;optimized out&gt;,<br>
&gt;    str=0x7ffff7b9e358 &quot;free(): invalid next size (fast)&quot;, action=3) at malloc.c:5004<br>
&gt; #4  _int_free (av=&lt;optimized out&gt;, p=&lt;optimized out&gt;, have_lock=0) at malloc.c:3865<br>
&gt; #5  0x00007ffff7a9198c in __GI___libc_free (mem=&lt;optimized out&gt;) at malloc.c:2966<br>
&gt; #6  0x00007ffff7aee224 in analyze (preg=0x7fffffff7e10) at regcomp.c:1166<br>
&gt; #7  re_compile_internal (preg=preg@entry=<wbr>0x7fffffff7e10, pattern=pattern@entry=0x651e90 &quot;^nextval$&quot;,<br>
&gt;    length=&lt;optimized out&gt;, syntax=syntax@entry=4436732) at regcomp.c:791<br>
&gt; #8  0x00007ffff7af569f in __regcomp (preg=preg@entry=<wbr>0x7fffffff7e10, pattern=0x651e90 &quot;^nextval$&quot;,<br>
&gt;    cflags=&lt;optimized out&gt;) at regcomp.c:498<br>
&gt; #9  0x0000000000408b6b in add_regex_pattern (type=&lt;optimized out&gt;, s=&lt;optimized out&gt;)<br>
&gt;    at pool_config.l:177<br>
&gt; #10 0x0000000000404e84 in initialize_variables_with_<wbr>default (<br>
&gt;    gconf=0x6141b0 &lt;ConfigureNamesStringList+304&gt;<wbr>) at pool_config_variables.c:2363<br>
&gt; #11 0x0000000000407507 in InitializeConfigOptions () at pool_config_variables.c:2449<br>
&gt; #12 0x000000000040887e in pool_init_config () at pool_config.l:119<br>
&gt; #13 0x0000000000401d6c in update_pool_passwd (<br>
&gt;    conf_file=conf_file@entry=<wbr>0x7fffffffc110 &quot;tests/001.load_balance/<wbr>testdir/etc/pgpool.conf&quot;,<br>
&gt;    username=username@entry=<wbr>0x7fffffffbff0 &quot;aaa&quot;, password=0x7fffffffe6b8 &quot;aaa&quot;) at pg_md5.c:199<br>
&gt; #14 0x0000000000401aa8 in main (argc=7, argv=0x7fffffffe238) at pg_md5.c:179<br>
&gt; (gdb)<br>
&gt;<br>
&gt; Also valgrind shows some errors.<br>
&gt;<br>
&gt; t-ishii@localhost: valgrind temp/installed/bin/pg_md5 -m -f tests/001.load_balance/<wbr>testdir/etc/pgpool.conf -u aaa aaa<br>
&gt; ==16881== Memcheck, a memory error detector<br>
&gt; ==16881== Copyright (C) 2002-2015, and GNU GPL&#39;d, by Julian Seward et al.<br>
&gt; ==16881== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info<br>
&gt; ==16881== Command: temp/installed/bin/pg_md5 -m -f tests/001.load_balance/<wbr>testdir/etc/pgpool.conf -u aaa aaa<br>
&gt; ==16881==<br>
&gt; ==16881== Invalid write of size 8<br>
&gt; ==16881==    at 0x4074A2: build_variable_groups (pool_config_variables.c:2075)<br>
&gt; ==16881==    by 0x4074A2: build_config_variables (pool_config_variables.c:2016)<br>
&gt; ==16881==    by 0x4074A2: InitializeConfigOptions (pool_config_variables.c:2441)<br>
&gt; ==16881==    by 0x40887D: pool_init_config (pool_config.l:119)<br>
&gt; ==16881==    by 0x401D6B: update_pool_passwd (pg_md5.c:199)<br>
&gt; ==16881==    by 0x401AA7: main (pg_md5.c:179)<br>
&gt; ==16881==  Address 0x5227018 is 0 bytes after a block of size 40 alloc&#39;d<br>
&gt; ==16881==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_<wbr>memcheck-amd64-linux.so)<br>
&gt; ==16881==    by 0x4094B4: pg_malloc (fe_memutils.c:33)<br>
&gt; ==16881==    by 0x4094DD: pg_malloc0 (fe_memutils.c:47)<br>
&gt; ==16881==    by 0x407432: build_variable_groups (pool_config_variables.c:2064)<br>
&gt; ==16881==    by 0x407432: build_config_variables (pool_config_variables.c:2016)<br>
&gt; ==16881==    by 0x407432: InitializeConfigOptions (pool_config_variables.c:2441)<br>
&gt; ==16881==    by 0x40887D: pool_init_config (pool_config.l:119)<br>
&gt; ==16881==    by 0x401D6B: update_pool_passwd (pg_md5.c:199)<br>
&gt; ==16881==    by 0x401AA7: main (pg_md5.c:179)<br>
&gt; ==16881==<br>
&gt; ==16881== Invalid write of size 8<br>
&gt; ==16881==    at 0x4074B4: build_variable_groups (pool_config_variables.c:2077)<br>
&gt; ==16881==    by 0x4074B4: build_config_variables (pool_config_variables.c:2016)<br>
&gt; ==16881==    by 0x4074B4: InitializeConfigOptions (pool_config_variables.c:2441)<br>
&gt; ==16881==    by 0x40887D: pool_init_config (pool_config.l:119)<br>
&gt; ==16881==    by 0x401D6B: update_pool_passwd (pg_md5.c:199)<br>
&gt; ==16881==    by 0x401AA7: main (pg_md5.c:179)<br>
&gt; ==16881==  Address 0x5227020 is 8 bytes after a block of size 40 alloc&#39;d<br>
&gt; ==16881==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_<wbr>memcheck-amd64-linux.so)<br>
&gt; ==16881==    by 0x4094B4: pg_malloc (fe_memutils.c:33)<br>
&gt; ==16881==    by 0x4094DD: pg_malloc0 (fe_memutils.c:47)<br>
&gt; ==16881==    by 0x407432: build_variable_groups (pool_config_variables.c:2064)<br>
&gt; ==16881==    by 0x407432: build_config_variables (pool_config_variables.c:2016)<br>
&gt; ==16881==    by 0x407432: InitializeConfigOptions (pool_config_variables.c:2441)<br>
&gt; ==16881==    by 0x40887D: pool_init_config (pool_config.l:119)<br>
&gt; ==16881==    by 0x401D6B: update_pool_passwd (pg_md5.c:199)<br>
&gt; ==16881==    by 0x401AA7: main (pg_md5.c:179)<br>
&gt; ==16881==<br>
&gt; ==16881== Invalid write of size 8<br>
&gt; ==16881==    at 0x4074C6: build_variable_groups (pool_config_variables.c:2079)<br>
&gt; ==16881==    by 0x4074C6: build_config_variables (pool_config_variables.c:2016)<br>
&gt; ==16881==    by 0x4074C6: InitializeConfigOptions (pool_config_variables.c:2441)<br>
&gt; ==16881==    by 0x40887D: pool_init_config (pool_config.l:119)<br>
&gt; ==16881==    by 0x401D6B: update_pool_passwd (pg_md5.c:199)<br>
&gt; ==16881==    by 0x401AA7: main (pg_md5.c:179)<br>
&gt; ==16881==  Address 0x5227028 is 16 bytes after a block of size 40 alloc&#39;d<br>
&gt; ==16881==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_<wbr>memcheck-amd64-linux.so)<br>
&gt; ==16881==    by 0x4094B4: pg_malloc (fe_memutils.c:33)<br>
&gt; ==16881==    by 0x4094DD: pg_malloc0 (fe_memutils.c:47)<br>
&gt; ==16881==    by 0x407432: build_variable_groups (pool_config_variables.c:2064)<br>
&gt; ==16881==    by 0x407432: build_config_variables (pool_config_variables.c:2016)<br>
&gt; ==16881==    by 0x407432: InitializeConfigOptions (pool_config_variables.c:2441)<br>
&gt; ==16881==    by 0x40887D: pool_init_config (pool_config.l:119)<br>
&gt; ==16881==    by 0x401D6B: update_pool_passwd (pg_md5.c:199)<br>
&gt; ==16881==    by 0x401AA7: main (pg_md5.c:179)<br>
&gt; ==16881==<br>
&gt; ==16881==<br>
&gt; ==16881== HEAP SUMMARY:<br>
&gt; ==16881==     in use at exit: 159,848 bytes in 3,700 blocks<br>
&gt; ==16881==   total heap usage: 5,872 allocs, 2,172 frees, 483,653 bytes allocated<br>
&gt; ==16881==<br>
&gt; ==16881== LEAK SUMMARY:<br>
&gt; ==16881==    definitely lost: 4,586 bytes in 1,034 blocks<br>
&gt; ==16881==    indirectly lost: 0 bytes in 0 blocks<br>
&gt; ==16881==      possibly lost: 0 bytes in 0 blocks<br>
&gt; ==16881==    still reachable: 155,262 bytes in 2,666 blocks<br>
&gt; ==16881==         suppressed: 0 bytes in 0 blocks<br>
&gt; ==16881== Rerun with --leak-check=full to see details of leaked memory<br>
&gt; ==16881==<br>
&gt; ==16881== For counts of detected and suppressed errors, rerun with: -v<br>
&gt; ==16881== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)<br>
&gt;<br>
&gt; Any idea?<br>
&gt;<br>
&gt; Best regards,<br>
&gt; --<br>
&gt; Tatsuo Ishii<br>
&gt; SRA OSS, Inc. Japan<br>
&gt; English: <a href="http://www.sraoss.co.jp/index_en.php" rel="noreferrer" target="_blank">http://www.sraoss.co.jp/index_<wbr>en.php</a><br>
&gt; Japanese:<a href="http://www.sraoss.co.jp" rel="noreferrer" target="_blank">http://www.sraoss.co.<wbr>jp</a><br>
&gt; ______________________________<wbr>_________________<br>
&gt; pgpool-hackers mailing list<br>
&gt; <a href="mailto:pgpool-hackers@pgpool.net">pgpool-hackers@pgpool.net</a><br>
&gt; <a href="http://www.pgpool.net/mailman/listinfo/pgpool-hackers" rel="noreferrer" target="_blank">http://www.pgpool.net/mailman/<wbr>listinfo/pgpool-hackers</a><br>
</div></div></blockquote></div><br></div></div></div>