Re: BUG #12918: Segfault in BackendIdGetTransactionIds

From: Stephen Frost <sfrost(at)snowman(dot)net>
To: Vladimir Borodin <root(at)simply(dot)name>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #12918: Segfault in BackendIdGetTransactionIds
Date: 2015-03-30 16:54:50
Message-ID: 20150330165450.GE3663@tamriel.snowman.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

* Vladimir Borodin (root(at)simply(dot)name) wrote:
>
> > 30 марта 2015 г., в 19:33, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> написал(а):
> >
> > root(at)simply(dot)name writes:
> >> After upgrading from 9.3.6 to 9.4.1 (both installed from packages on
> >> yum.postgresql.org) we have started getting segfaults of different backends.
> >> Backtraces of all coredumps look similar:
> >> (gdb) bt
> >> #0 0x000000000066bf9b in BackendIdGetTransactionIds (backendID=<value
> >> optimized out>, xid=0x7f2a1b714798, xmin=0x7f2a1b71479c) at sinvaladt.c:426
> >> #1 0x00000000006287f4 in pgstat_read_current_status () at pgstat.c:2871
> >> #2 0x0000000000628879 in pgstat_fetch_stat_numbackends () at pgstat.c:2342
> >
> > Hmm ... looks to me like BackendIdGetTransactionIds is simply busted.
> > It supposes that there are no inactive entries in the sinval array
> > within the range 0 .. lastBackend. But there can be, in which case
> > dereferencing stateP->proc crashes. The reason it's hard to reproduce
> > is the relatively narrow window between where pgstat_read_current_status
> > saw the backend as active and where we're inspecting its sinval entry.
>
> I’ve also tried to revert dd1a3bcc where this function appeared but couldn’t do it :( If you would be able to make a build without this commit (if it is easier than fix it in right way), I could install it on several production hosts to test it.

Hopefully a fix will be forthcoming shortly. Reverting it won't work
though, no, as it included a catalog bump.

Thanks,

Stephen

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2015-03-30 17:00:01 Re: BUG #12918: Segfault in BackendIdGetTransactionIds
Previous Message Stephen Frost 2015-03-30 16:51:16 Re: BUG #12918: Segfault in BackendIdGetTransactionIds