Re: [COMMITTERS] pgsql: Keep track of transaction commit timestamps

Поиск
Список
Период
Сортировка
От Alex Shulgin
Тема Re: [COMMITTERS] pgsql: Keep track of transaction commit timestamps
Дата
Msg-id 87r3wf2wgz.fsf@commandprompt.com
обсуждение исходный текст
Ответ на Re: [COMMITTERS] pgsql: Keep track of transaction commit timestamps  (Alex Shulgin <ash@commandprompt.com>)
Список pgsql-hackers
Alex Shulgin <ash@commandprompt.com> writes:
>
> Figured it out with a pg_usleep in bootstrap.c anyway.  Does this look sane?
>
>
> DEBUG:  inserting column 6 value "0"
> DEBUG:  inserted -> 0
> DEBUG:  inserting column 7 value "varchar_transform"
> TRAP: FailedAssertion("!(((xmax) >= ((TransactionId) 3)))", File:
"/home/ash/src/postgresql/src/backend/storage/ipc/procarray.c",Line: 1414)
 

I've tried to debug this and I feel really dumbfound...


DEBUG:  inserting column 7 value "varchar_transform"

Breakpoint 1, GetSnapshotData (snapshot=0xdb2d60 <CatalogSnapshotData>)   at
/home/ash/src/postgresql/src/backend/storage/ipc/procarray.c:1413
1413        xmax = ShmemVariableCache->latestCompletedXid;

(gdb) p ShmemVariableCache->latestCompletedXid 
$1 = 4294967295

(gdb) p *ShmemVariableCache
$2 = {nextOid = 10000, oidCount = 0, nextXid = 3, oldestXid = 3,  xidVacLimit = 200000003, xidWarnLimit = 2136483650,
xidStopLimit= 2146483650, xidWrapLimit = 2147483650, oldestXidDB = 1,  oldestCommitTs = 1, newestCommitTs = 0,
latestCompletedXid= 4294967295}
 

(gdb) p xmax
$3 = 0

(gdb) n
1414        Assert(TransactionIdIsNormal(xmax));

(gdb) p xmax
$4 = 1

(gdb) p *ShmemVariableCache
$5 = {nextOid = 10000, oidCount = 0, nextXid = 3, oldestXid = 3,  xidVacLimit = 200000003, xidWarnLimit = 2136483650,
xidStopLimit= 2146483650, xidWrapLimit = 2147483650, oldestXidDB = 1,  oldestCommitTs = 1, newestCommitTs = 0,
latestCompletedXid= 4294967295}
 

(gdb) p ShmemVariableCache->latestCompletedXid 
$6 = 4294967295

(gdb) 


How?  Is there an another concurrent process with the old view of
VariableCacheData struct where latestCompletedXid still points to
oldestCommitTs?

This only happens with the CommitTs commit in effect.

--
Alex



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Alex Shulgin
Дата:
Сообщение: Re: [COMMITTERS] pgsql: Keep track of transaction commit timestamps
Следующее
От: Alex Shulgin
Дата:
Сообщение: Re: [COMMITTERS] pgsql: Keep track of transaction commit timestamps