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

Emond Papegaaij emond.papegaaij at gmail.com
Tue Sep 17 16:59:35 JST 2024


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.pgpool.net/pipermail/pgpool-general/attachments/20240917/8a98ebd2/attachment.htm>


More information about the pgpool-general mailing list