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:51:16 |
Message-ID: | 20150330165116.GD3663@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:44, Stephen Frost <sfrost(at)snowman(dot)net> написал(а):
> > * Tom Lane (tgl(at)sss(dot)pgh(dot)pa(dot)us <mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us>) wrote:
> >> 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.
> >
> > As an immediate short-term workaround, from what I can tell,
> > disabling calls to pg_stat_activity, and pg_stat_database (views), and
> > pg_stat_get_activity, pg_stat_get_backend_idset, and
> > pg_stat_get_db_numbackends (functions) should prevent triggering this
> > bug.
>
> I suppose, pg_stat_replication should not be asked too. We have already done that on most critical databases but it is hard to be blind :(
Ah, yes, not sure where I dropped that; it was in my initial list but
didn't make it into the final email.
I would expect a fix to be included in the next point release, hopefully
released in the next couple of months.
Thanks!
Stephen
From | Date | Subject | |
---|---|---|---|
Next Message | Stephen Frost | 2015-03-30 16:54:50 | Re: BUG #12918: Segfault in BackendIdGetTransactionIds |
Previous Message | Vladimir Borodin | 2015-03-30 16:48:23 | Re: BUG #12918: Segfault in BackendIdGetTransactionIds |