Re: Why PG_SETMASK() change errno to 0 when there is an elog() callbefore or after it? Is it a bug? - Mailing list pgsql-bugs

From Andres Freund
Subject Re: Why PG_SETMASK() change errno to 0 when there is an elog() callbefore or after it? Is it a bug?
Date
Msg-id 20190128045034.f76oyyjim33t64mh@alap3.anarazel.de
Whole thread Raw
In response to Why PG_SETMASK() change errno to 0 when there is an elog() callbefore or after it? Is it a bug?  (CNG L <congnanluo@gmail.com>)
List pgsql-bugs
Hi,

On 2019-01-27 18:21:11 -0800, CNG L wrote:
> In founction ServerLoop() in code postmaster.c, after select(), we called
> PG_SETMASK(). If l add an elog() after PG_SETMASK(), I see errno is reset
> to 0 when PG_SETMASK() call suceeded. But the immediately code will
> actually check errno from the select() call which now has been overwritten
> by PG_SETMASK().

Yes, hat's a bug, we need to restore errno after the setmask. I think I
broke that a few years back, in a39e78b710eb588e102aedd2828611d7bc74714b.
I'll try to fix that later this week - I'm flying to Brussels Tuesday
morning, not sure I can get this done before.

Greetings,

Andres Freund


pgsql-bugs by date:

Previous
From: "钱学斌"
Date:
Subject: pgsql bug
Next
From: Michael Paquier
Date:
Subject: Re: BUG #15548: Unaccent does not remove combining diacriticalcharacters