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 по дате отправления: