From: | Vladimir Borodin <root(at)simply(dot)name> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #12918: Segfault in BackendIdGetTransactionIds |
Date: | 2015-03-30 16:44:36 |
Message-ID: | F209A528-1F4C-4E69-97A5-4E987248AA29@simply.name |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
> 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.
>
> regards, tom lane
--
May the force be with you…
https://simply.name
From | Date | Subject | |
---|---|---|---|
Next Message | Stephen Frost | 2015-03-30 16:44:54 | Re: BUG #12918: Segfault in BackendIdGetTransactionIds |
Previous Message | Tom Lane | 2015-03-30 16:33:47 | Re: BUG #12918: Segfault in BackendIdGetTransactionIds |