aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/transam/xloginsert.c
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2015-06-28 21:59:29 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2015-06-28 22:16:21 +0300
commita45c70acf35e43257d86313dcbb7bb0e5201fab1 (patch)
treeb8f948b9cb84ea2c42391785d2eaa6160860ee15 /src/backend/access/transam/xloginsert.c
parentb36805f3c54fe0e50e58bb9e6dad66daca46fbf6 (diff)
downloadpostgresql-a45c70acf35e43257d86313dcbb7bb0e5201fab1.tar.gz
postgresql-a45c70acf35e43257d86313dcbb7bb0e5201fab1.zip
Fix double-XLogBeginInsert call in GIN page splits.
If data checksums or wal_log_hints is on, and a GIN page is split, the code to find a new, empty, block was called after having already called XLogBeginInsert(). That causes an assertion failure or PANIC, if finding the new block involves updating a FSM page that had not been modified since last checkpoint, because that update is WAL-logged, which calls XLogBeginInsert again. Nested XLogBeginInsert calls are not supported. To fix, rearrange GIN code so that XLogBeginInsert is called later, after finding the victim buffers. Reported by Jeff Janes.
Diffstat (limited to 'src/backend/access/transam/xloginsert.c')
0 files changed, 0 insertions, 0 deletions