Re: BUG #16673: Stack depth limit exceeded error while running sysbench TPC-C

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: david(at)swarm64(dot)com
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #16673: Stack depth limit exceeded error while running sysbench TPC-C
Date: 2020-10-15 14:09:31
Message-ID: 3679451.1602770971@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

PG Bug reporting form <noreply(at)postgresql(dot)org> writes:
> [ signal recursion in postmaster ]

This looks like the same issue that we fixed in HEAD/v13 just about
a year ago:

Author: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Branch: master Release: REL_13_BR [9abb2bfc0] 2019-10-13 15:48:26 -0400

In the postmaster, rely on the signal infrastructure to block signals.

POSIX sigaction(2) can be told to block a set of signals while a
signal handler executes. Make use of that instead of manually
blocking and unblocking signals in the postmaster's signal handlers.
This should save a few cycles, and it also prevents recursive
invocation of signal handlers when many signals arrive in close
succession. We have seen buildfarm failures that seem to be due to
postmaster stack overflow caused by such recursion (exacerbated by
a Linux PPC64 kernel bug).

This doesn't change anything about the way that it works on Windows.
Somebody might consider adjusting port/win32/signal.c to let it work
similarly, but I'm not in a position to do that.

For the moment, just apply to HEAD. Possibly we should consider
back-patching this, but it'd be good to let it age awhile first.

Discussion: https://postgr.es/m/14878.1570820201@sss.pgh.pa.us

Maybe now it's aged enough to back-patch?

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Alvaro Herrera 2020-10-15 14:50:19 Re: BUG #16643: PG13 - Logical replication - initial startup never finishes and gets stuck in startup loop
Previous Message PG Bug reporting form 2020-10-15 12:43:27 BUG #16673: Stack depth limit exceeded error while running sysbench TPC-C