Re: pg_serial early wraparound - Mailing list pgsql-hackers

From Anastasia Lubennikova
Subject Re: pg_serial early wraparound
Date
Msg-id 20170324141122.22419.63945.pgcf@coridan.postgresql.org
Whole thread Raw
In response to Re: [HACKERS] pg_serial early wraparound  (Thomas Munro <thomas.munro@enterprisedb.com>)
Responses Re: pg_serial early wraparound  (Thomas Munro <thomas.munro@enterprisedb.com>)
List pgsql-hackers
The following review has been posted through the commitfest application:
make installcheck-world:  not tested
Implements feature:       not tested
Spec compliant:           not tested
Documentation:            not tested

Hi, I've tried to review this patch, but it seems that I miss something essential.
You claim that SLRUs now support five digit segment name, while in slru.h
at current master I see the following:
* Note: slru.c currently assumes that segment file names will be four hex* digits.  This sets a lower bound on the
segmentsize (64K transactions* for 32-bit TransactionIds).*/
 
#define SLRU_PAGES_PER_SEGMENT    32

/* Maximum length of an SLRU name */
#define SLRU_MAX_NAME_LENGTH    32

Could you please clarify the idea of the patch? Is it still relevant?

I've also run your test script.
pg_clog was renamed to pg_xact, so it need to be changed accordingly
echo "Contents of pg_clog:" ls $PGDATA/pg_xact/


The test shows failed assertion:

========== setting next xid to 1073741824 =========
Transaction log reset
waiting for server to start....2017-03-24 17:05:19.897 MSK [1181] LOG:  listening on IPv4 address "127.0.0.1", port
5432
2017-03-24 17:05:19.981 MSK [1181] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2017-03-24 17:05:20.081 MSK [1183] LOG:  database system was shut down at 2017-03-24 17:05:19 MSK
2017-03-24 17:05:20.221 MSK [1181] LOG:  database system is ready to accept connectionsdone
server started
vacuumdb: vacuuming database "postgres"
vacuumdb: vacuuming database "template0"
vacuumdb: vacuuming database "template1"
TRAP: FailedAssertion("!(TransactionIdPrecedesOrEquals(oldestXact, ShmemVariableCache->oldestXid))", File: "clog.c",
Line:669)
 
vacuumdb: vacuuming of database "template1" failed: server closed the connection unexpectedly   This probably means the
serverterminated abnormally   before or while processing the request.
 
2017-03-24 17:05:21.541 MSK [1181] LOG:  server process (PID 1202) was terminated by signal 6: Aborted
2017-03-24 17:05:21.541 MSK [1181] DETAIL:  Failed process was running: VACUUM (FREEZE);

The new status of this patch is: Waiting on Author

pgsql-hackers by date:

Previous
From: Petr Jelinek
Date:
Subject: Re: Logical replication existing data copy
Next
From: Simon Riggs
Date:
Subject: Re: Should we cacheline align PGXACT?