Re: BUG #12918: Segfault in BackendIdGetTransactionIds
От | Tom Lane |
---|---|
Тема | Re: BUG #12918: Segfault in BackendIdGetTransactionIds |
Дата | |
Msg-id | 27537.1427734801@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: BUG #12918: Segfault in BackendIdGetTransactionIds (Vladimir Borodin <root@simply.name>) |
Ответы |
Re: BUG #12918: Segfault in BackendIdGetTransactionIds
Re: BUG #12918: Segfault in BackendIdGetTransactionIds |
Список | pgsql-bugs |
Vladimir Borodin <root@simply.name> writes: > I���ve also tried to revert dd1a3bcc where this function appeared but couldn���t do it :( If you would be able to makea build without this commit (if it is easier than fix it in right way), I could install it on several production hoststo test it. Try this. regards, tom lane diff --git a/src/backend/storage/ipc/sinvaladt.c b/src/backend/storage/ipc/sinvaladt.c index 81b85c0..a2fde89 100644 *** a/src/backend/storage/ipc/sinvaladt.c --- b/src/backend/storage/ipc/sinvaladt.c *************** BackendIdGetProc(int backendID) *** 403,411 **** void BackendIdGetTransactionIds(int backendID, TransactionId *xid, TransactionId *xmin) { - ProcState *stateP; SISeg *segP = shmInvalBuffer; - PGXACT *xact; *xid = InvalidTransactionId; *xmin = InvalidTransactionId; --- 403,409 ---- *************** BackendIdGetTransactionIds(int backendID *** 415,425 **** if (backendID > 0 && backendID <= segP->lastBackend) { ! stateP = &segP->procState[backendID - 1]; ! xact = &ProcGlobal->allPgXact[stateP->proc->pgprocno]; ! *xid = xact->xid; ! *xmin = xact->xmin; } LWLockRelease(SInvalWriteLock); --- 413,428 ---- if (backendID > 0 && backendID <= segP->lastBackend) { ! ProcState *stateP = &segP->procState[backendID - 1]; ! PGPROC *proc = stateP->proc; ! if (proc != NULL) ! { ! PGXACT *xact = &ProcGlobal->allPgXact[proc->pgprocno]; ! ! *xid = xact->xid; ! *xmin = xact->xmin; ! } } LWLockRelease(SInvalWriteLock);
В списке pgsql-bugs по дате отправления: