Обсуждение: parallel pg_dump causes assertion failure in HEAD
$ pg_dump -F d -j 4 -f foo regression
pg_dump: [archiver (db)] query failed: pg_dump: [parallel archiver] query was: SET TRANSACTION SNAPSHOT '00002130-1'
pg_dump: [archiver (db)] query failed: pg_dump: [archiver (db)] query failed: pg_dump: [archiver (db)] query failed: $
postmaster log shows:
TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c", Line: 355)
TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c", Line: 355)
TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c", Line: 355)
TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c", Line: 355)
LOG: server process (PID 15069) was terminated by signal 6: Aborted
DETAIL: Failed process was running: SET TRANSACTION SNAPSHOT '00002130-1'
LOG: terminating any other active server processes
That Assert appears to have been introduced by commit b89e1510.
regards, tom lane
On 2014-03-05 12:07:43 -0500, Tom Lane wrote:
> $ pg_dump -F d -j 4 -f foo regression
> pg_dump: [archiver (db)] query failed: pg_dump: [parallel archiver] query was: SET TRANSACTION SNAPSHOT '00002130-1'
> pg_dump: [archiver (db)] query failed: pg_dump: [archiver (db)] query failed: pg_dump: [archiver (db)] query failed:
$
>
> postmaster log shows:
>
> TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c", Line: 355)
> TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c", Line: 355)
> TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c", Line: 355)
> TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c", Line: 355)
> LOG: server process (PID 15069) was terminated by signal 6: Aborted
> DETAIL: Failed process was running: SET TRANSACTION SNAPSHOT '00002130-1'
> LOG: terminating any other active server processes
>
> That Assert appears to have been introduced by commit b89e1510.
Will have a look in an hour or two.
Greetings,
Andres Freund
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services
On March 5, 2014 6:07:43 PM CET, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>$ pg_dump -F d -j 4 -f foo regression
>pg_dump: [archiver (db)] query failed: pg_dump: [parallel archiver]
>query was: SET TRANSACTION SNAPSHOT '00002130-1'
>pg_dump: [archiver (db)] query failed: pg_dump: [archiver (db)] query
>failed: pg_dump: [archiver (db)] query failed: $
>
>postmaster log shows:
>
>TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c",
>Line: 355)
>TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c",
>Line: 355)
>TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c",
>Line: 355)
>TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c",
>Line: 355)
>LOG: server process (PID 15069) was terminated by signal 6: Aborted
>DETAIL: Failed process was running: SET TRANSACTION SNAPSHOT
>'00002130-1'
>LOG: terminating any other active server processes
>
>That Assert appears to have been introduced by commit b89e1510.
It's a typo. It should make sure there is *no* historical snapshot. Will later test if it really works, but I'd be
surprisedif not.
Andres
--
Please excuse brevity and formatting - I am writing this on my mobile phone.
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
On 2014-03-05 18:39:52 +0100, Andres Freund wrote:
> On March 5, 2014 6:07:43 PM CET, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >$ pg_dump -F d -j 4 -f foo regression
> >pg_dump: [archiver (db)] query failed: pg_dump: [parallel archiver]
> >query was: SET TRANSACTION SNAPSHOT '00002130-1'
> >pg_dump: [archiver (db)] query failed: pg_dump: [archiver (db)] query
> >failed: pg_dump: [archiver (db)] query failed: $
> >
> >postmaster log shows:
> >
> >TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c",
> >Line: 355)
> >TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c",
> >Line: 355)
> >TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c",
> >Line: 355)
> >TRAP: FailedAssertion("!(HistoricSnapshotActive())", File: "snapmgr.c",
> >Line: 355)
> >LOG: server process (PID 15069) was terminated by signal 6: Aborted
> >DETAIL: Failed process was running: SET TRANSACTION SNAPSHOT
> >'00002130-1'
> >LOG: terminating any other active server processes
> >
> >That Assert appears to have been introduced by commit b89e1510.
>
> It's a typo. It should make sure there is *no* historical
> snapshot. Will later test if it really works, but I'd be surprised if
> not.
So, after crashing my laptop by doing pg_dump -j16 on a cluster with 4GB
of shared_buffers (causing 16 parallel coredumps to be written) I can
confirm that indeed that the reason is just a typo in an assert.
Patch fixing that attached, it also includes a fix for a comment in a
related checks for historical snapshots.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services