Thread: parallel pg_dump causes assertion failure in HEAD

parallel pg_dump causes assertion failure in HEAD

From
Tom Lane
Date:
$ 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



Re: parallel pg_dump causes assertion failure in HEAD

From
Andres Freund
Date:
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



Re: parallel pg_dump causes assertion failure in HEAD

From
Andres Freund
Date:
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



Re: parallel pg_dump causes assertion failure in HEAD

From
Andres Freund
Date:
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

Attachment