I've been getting some failures after an immediate shutdown or crash,
during severe IO stress, with the message:

LOG:  XX000: select() failed in postmaster: Invalid argument
LOCATION:  ServerLoop, postmaster.c:1560

It is trying to sleep for -1 seconds.

I think the problem is here, where there should be a Max rather than a Min:

commit 82233ce7ea42d6ba519aaec63008aff49da6c7af
Author: Alvaro Herrera <alvhe...@alvh.no-ip.org>
Date:   Fri Jun 28 17:20:53 2013 -0400

    Send SIGKILL to children if they don't die quickly in immediate shutdown

...

+           /* remaining time, but at least 1 second */
+           timeout->tv_sec = Min(SIGKILL_CHILDREN_AFTER_SECS -
+                                 (time(NULL) - AbortStartTime), 1);


But I don't understand the logic behind this anyway.  Why sleep at least 1
second?  If time is up, it is up, why not use zero as the minimum?

Cheers,

Jeff

Reply via email to