Re: 9.4 HEAD: select() failed in postmaster - Mailing list pgsql-hackers

From Noah Misch
Subject Re: 9.4 HEAD: select() failed in postmaster
Date
Msg-id 20130911235419.GA243762@tornado.leadboat.com
Whole thread Raw
In response to 9.4 HEAD: select() failed in postmaster  (Jeff Janes <jeff.janes@gmail.com>)
Responses Re: 9.4 HEAD: select() failed in postmaster
List pgsql-hackers
On Tue, Sep 10, 2013 at 05:18:21PM -0700, Jeff Janes wrote:
> 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 <alvherre@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);

Agreed; good catch.

> 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?

Offhand, clamping to zero does make more sense to me.  It looks like Alvaro
added that bit in his pre-commit edits.  Alvaro?

Thanks,
nm

-- 
Noah Misch
EnterpriseDB                                 http://www.enterprisedb.com



pgsql-hackers by date:

Previous
From: David Fetter
Date:
Subject: Re: Protocol forced to V2 in low-memory conditions?
Next
From: Noah Misch
Date:
Subject: Re: Pending query cancel defeats SIGQUIT