[pgpool-general: 9207] Re: Segmentation fault during shutdown

Tatsuo Ishii ishii at postgresql.org
Wed Sep 18 11:16:44 JST 2024


Okay.
Please let us know if you notice something.

Best reagards,
--
Tatsuo Ishii
SRA OSS K.K.
English: http://www.sraoss.co.jp/index_en/
Japanese:http://www.sraoss.co.jp

> Hi,
> 
> Thanks for the patch. I've added it to our build. This crash is quite rare,
> so I guess the only way of knowing if this fixed the error is by observing
> the build for the next couple of months.
> 
> Best regards,
> Emond
> 
> Op di 17 sep 2024 om 08:37 schreef Tatsuo Ishii <ishii at postgresql.org>:
> 
>> > Thanks for the report.
>> >
>> > Yes, it seems the crash happened when close_all_backend_connections()
>> > was called by on_exit which is called when process exits. I will look
>> > into this.
>>
>> close_all_backend_connections() is responsible for closing pooled
>> connections to backend.  In the code MAIN_CONNECTION() macro is
>> used. Pooled connections could contain connections pointing to backend
>> which was valid at some point but is in down state at present. So
>> instead of MAIN_CONNECTION, we should use in_use_backend_id() here.
>> Attached patch does this. I hope the patch fixes your problem.
>>
>> Best reagards,
>> --
>> Tatsuo Ishii
>> SRA OSS K.K.
>> English: http://www.sraoss.co.jp/index_en/
>> Japanese:http://www.sraoss.co.jp
>>
>> >> Hi,
>> >>
>> >> One of our test runs this weekend hit another segmentation fault. This
>> >> crash seems to happen when pgpool is shutdown. This happens at the end
>> of
>> >> the testcase that reverts a cluster back to a single node setup. At that
>> >> moment, 172.29.30.2 is already shutdown and removed from the cluster and
>> >> 172.29.30.3 is shutdown. The configuration is updated and pgpool on
>> >> 172.29.30.1 is restarted. The crash seems to happen at the moment
>> ppgool on
>> >> 172.29.30.1 is shutdown to be restarted. I've got the feeling that the
>> >> simultaneous loss of .3 and the shutdown is causing this crash.
>> >>
>> >> Below is the backtrace. Please not we've switched from Debian to Alpine
>> >> based images.
>> >> #0  0x000055fe4225f0ab in close_all_backend_connections () at
>> >> protocol/pool_connection_pool.c:1078
>> >> #1  0x000055fe422917ef in proc_exit_prepare (code=-1) at
>> >> ../../src/utils/error/elog.c:2707
>> >> #2  0x00007ff1af359da7 in __funcs_on_exit () at src/exit/atexit.c:34
>> >> #3  0x00007ff1af35108f in exit (code=code at entry=0) at
>> src/exit/exit.c:29
>> >> #4  0x000055fe4224d4d2 in child_exit (code=0) at protocol/child.c:1378
>> >> #5  die (sig=3) at protocol/child.c:1174
>> >> #6  <signal handler called>
>> >> #7  memset () at src/string/x86_64/memset.s:55
>> >> #8  0x000055fe4225d2ed in memset (__n=<optimized out>, __c=0,
>> >> __d=<optimized out>) at /usr/include/fortify/string.h:75
>> >> #9  pool_init_cp () at protocol/pool_connection_pool.c:83
>> >> #10 0x000055fe4224f5f0 in do_child (fds=fds at entry=0x7ff1a6aabae0) at
>> >> protocol/child.c:222
>> >> #11 0x000055fe42223ebe in fork_a_child (fds=0x7ff1a6aabae0, id=11) at
>> >> main/pgpool_main.c:863
>> >> #12 0x000055fe42229d90 in exec_child_restart (node_id=0,
>> >> failover_context=0x7ffcd98e8c50) at main/pgpool_main.c:4684
>> >> #13 failover () at main/pgpool_main.c:1739
>> >> #14 0x000055fe42228cd9 in sigusr1_interrupt_processor () at
>> >> main/pgpool_main.c:1507
>> >> #15 0x000055fe4222900f in check_requests () at main/pgpool_main.c:4934
>> >> #16 0x000055fe4222ce53 in PgpoolMain
>> (discard_status=discard_status at entry=0
>> >> '\000', clear_memcache_oidmaps=clear_memcache_oidmaps at entry=0 '\000')
>> at
>> >> main/pgpool_main.c:649
>> >> #17 0x000055fe42222713 in main (argc=<optimized out>, argv=<optimized
>> out>)
>> >> at main/main.c:365
>> >>
>> >> Best regards,
>> >> Emond
>> > _______________________________________________
>> > pgpool-general mailing list
>> > pgpool-general at pgpool.net
>> > http://www.pgpool.net/mailman/listinfo/pgpool-general
>>


More information about the pgpool-general mailing list