Re: Multithreaded SIGPIPE race in libpq on Solaris

From: Thomas Munro <munro(at)ip9(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Multithreaded SIGPIPE race in libpq on Solaris
Date: 2014-08-29 08:53:32
Message-ID: CADLWmXUdijRLzV0-aD7L3ndQw1u3a5xKT025nJ+R7Tqva5+66w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 29 August 2014 01:04, Thomas Munro <munro(at)ip9(dot)org> wrote:
> On 28 August 2014 23:45, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> I don't claim to be an expert on this stuff, but I had the idea that
>> multithreaded environments were supposed to track signal state per-thread
>> not just per-process, precisely because of issues like this.
>
> After some googling, I found reply #3 in
> https://community.oracle.com/thread/1950900?start=0&tstart=0 and
> various other sources which say that in Solaris versions 10 they
> changed SIGPIPE delivery from per process (as specified by UNIX98) to
> per thread (as specified by POSIX:2001). But we are on version 11, so
> my theory doesn't look great. (Though 9 is probably still in use out
> there somewhere...)

I discovered that the machine we saw the problem on was running
Solaris 9 at the time, but has been upgraded since. So I think my
sigwait race theory may have been correct, but we can just put this
down to a historical quirk and forget about it, because Solaris 9 is
basically deceased ("extended support" ends in October 2014). Sorry
for the noise.

Best regards,
Thomas Munro

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message arhipov 2014-08-29 09:04:12 Re: Why data of timestamptz does not store value of timezone passed to it?
Previous Message Mark Kirkwood 2014-08-29 04:35:35 Re: Per table autovacuum vacuum cost limit behaviour strange