On Sat, Feb 26, 2022 at 02:07:05PM -0500, Tom Lane wrote:
> I don't know much about how gdb interacts with kernel calls on
> FreeBSD, but I speculate that the poll(2) call returns with EINTR
> after gdb releases the process, and then things resume fine,
> suggesting that we lost an interrupt somewhere.
I've seen some similar interactions with strace under linux causing a process
to be woken up or otherwise incur a different behavior (not necessarily
postgres).
> Thoughts? Ideas on debugging this?
Before attaching a debugger, figure out what syscall each process is in.
In linux, that's ps O wchan PID.
>> Besides trying to make the issue more likely as suggested above, it might be
>> worth checking if signalling the stuck processes with SIGUSR1 gets them
>> unstuck.
And SIGCONT.
Maybe already did this, but you can dump a corefile of the running processes to
allow future inspection.
--
Justin