Re: Escaping from blocked send() reprised.
Andres Freund <andres@2ndquadrant.com>
From: Andres Freund <andres@2ndquadrant.com>
To: Heikki Linnakangas <hlinnakangas@vmware.com>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>,
robertmhaas@gmail.com, pgsql-hackers@postgresql.org
Date: 2015-01-08T13:17:32Z
Lists: pgsql-hackers
On 2014-10-03 16:26:35 +0200, Andres Freund wrote: > On 2014-10-03 17:12:18 +0300, Heikki Linnakangas wrote: > > >0002 now makes sense on its own and doesn't change anything around the > > > interrupt handling. Oh, and it compiles without 0003. > > > > WaitLatchOrSocket() can throw an error, so it's not totally safe to call > > that underneath OpenSSL. > > Hm. Fair point. I think we should fix this by simply prohibiting WaitLatch/WaitLatchOrSocket from ERRORing out. The easiest, and imo acceptable, thing is to simply convert the relevant ERRORs to FATAL. I think that'd be perfectly fine as it seems very unlikely that we continue sanely afterwards. It would really be nice if we had a simple way to raise a FATAL that won't go to the client for situations like this. I'd proposed elog(FATAL | COMERROR, ...) in the past... Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Commits
-
Assert that WaitLatchOrSocket callers cannot wait only for writability.
- e42a21b9e6c9 9.2.0 cited