Re: [COMMITTERS] pgsql: Avoid SnapshotResetXmin() during AtEOXact_Snapshot() - Mailing list pgsql-hackers

From Robert Haas
Subject Re: [COMMITTERS] pgsql: Avoid SnapshotResetXmin() during AtEOXact_Snapshot()
Date
Msg-id CA+TgmoZid0UrCmub3gmYVOvyZL0u2LOM4H337BuhoU0mkXrMxA@mail.gmail.com
Whole thread Raw
Responses Re: [COMMITTERS] pgsql: Avoid SnapshotResetXmin() during AtEOXact_Snapshot()  (Simon Riggs <simon@2ndquadrant.com>)
Re: [COMMITTERS] pgsql: Avoid SnapshotResetXmin() during AtEOXact_Snapshot()  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
On Fri, Mar 24, 2017 at 10:23 AM, Simon Riggs <simon@2ndquadrant.com> wrote:
> Avoid SnapshotResetXmin() during AtEOXact_Snapshot()
>
> For normal commits and aborts we already reset PgXact->xmin
> Avoiding touching highly contented shmem improves concurrent
> performance.
>
> Simon Riggs

I'm getting occasional crashes with backtraces that look like this:

#0  0x00007fff9679c286 in __pthread_kill ()
#1  0x00007fff94e1a9f9 in pthread_kill ()
#2  0x00007fff9253a9a3 in abort ()
#3  0x0000000107e0659e in ExceptionalCondition (conditionName=<value
temporarily unavailable, due to optimizations>, errorType=0x6 <Address
0x6 out of bounds>, fileName=<value temporarily unavailable, due to
optimizations>, lineNumber=<value temporarily unavailable, due to
optimizations>) at assert.c:54
#4  0x0000000107e4be2b in AtEOXact_Snapshot (isCommit=<value
temporarily unavailable, due to optimizations>, isPrepare=0 '\0') at
snapmgr.c:1154
#5  0x0000000107a76c06 in CleanupTransaction () at xact.c:2643
#6  0x0000000107a76267 in CommitTransactionCommand () at xact.c:2818
#7  0x0000000107cecfc2 in exec_simple_query
(query_string=0x7f975481e640 "ABORT TRANSACTION") at postgres.c:2461
#8  0x0000000107ceabb7 in PostgresMain (argc=<value temporarily
unavailable, due to optimizations>, argv=<value temporarily
unavailable, due to optimizations>, dbname=<value temporarily
unavailable, due to optimizations>, username=<value temporarily
unavailable, due to optimizations>) at postgres.c:4071
#9  0x0000000107c6bb58 in PostmasterMain (argc=<value temporarily
unavailable, due to optimizations>, argv=<value temporarily
unavailable, due to optimizations>) at postmaster.c:4317
#10 0x0000000107be5cdd in main (argc=<value temporarily unavailable,
due to optimizations>, argv=<value temporarily unavailable, due to
optimizations>) at main.c:228

I suspect that is the fault of this patch.  Please fix or revert.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Aleksander Alekseev
Date:
Subject: Re: Re: Declarative partitioning optimization for largeamount of partitions
Next
From: Teodor Sigaev
Date:
Subject: Re: Re: [BUGS] Problem in using pgbench's --connect(-C) and--rate=rate(-R rate) options together.