]> granicus.if.org Git - postgresql/commit
Fix assorted core dumps and Assert failures that could occur during
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 24 Jan 2010 21:49:31 +0000 (21:49 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 24 Jan 2010 21:49:31 +0000 (21:49 +0000)
commit5244ed40cfc9a6234d2d291f61884e80f8330d03
treead2fe71a12749c602f052b49233858cfcefb624b
parent18cba6eccbdddd4fd96455db3f9ca738d9d7b777
Fix assorted core dumps and Assert failures that could occur during
AbortTransaction or AbortSubTransaction, when trying to clean up after an
error that prevented (sub)transaction start from completing:
* access to TopTransactionResourceOwner that might not exist
* assert failure in AtEOXact_GUC, if AtStart_GUC not called yet
* assert failure or core dump in AfterTriggerEndSubXact, if
  AfterTriggerBeginSubXact not called yet

Per testing by injecting elog(ERROR) at successive steps in StartTransaction
and StartSubTransaction.  It's not clear whether all of these cases could
really occur in the field, but at least one of them is easily exposed by
simple stress testing, as per my accidental discovery yesterday.
src/backend/access/transam/xact.c
src/backend/commands/trigger.c
src/backend/utils/misc/guc.c