- Notifications
You must be signed in to change notification settings - Fork5
Commita45c70a
committed
Fix double-XLogBeginInsert call in GIN page splits.
If data checksums or wal_log_hints is on, and a GIN page is split, the codeto find a new, empty, block was called after having already calledXLogBeginInsert(). That causes an assertion failure or PANIC, if finding thenew block involves updating a FSM page that had not been modified since lastcheckpoint, because that update is WAL-logged, which calls XLogBeginInsertagain. Nested XLogBeginInsert calls are not supported.To fix, rearrange GIN code so that XLogBeginInsert is called later, afterfinding the victim buffers.Reported by Jeff Janes.1 parentb36805f commita45c70a
File tree
3 files changed
+11
-9
lines changed- src/backend/access/gin
3 files changed
+11
-9
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
358 | 358 | | |
359 | 359 | | |
360 | 360 | | |
361 | | - | |
362 | | - | |
363 | | - | |
364 | | - | |
365 | | - | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
366 | 365 | | |
367 | 366 | | |
368 | 367 | | |
369 | 368 | | |
370 | 369 | | |
371 | | - | |
372 | | - | |
373 | | - | |
374 | | - | |
375 | 370 | | |
376 | 371 | | |
377 | 372 | | |
| |||
558 | 553 | | |
559 | 554 | | |
560 | 555 | | |
| 556 | + | |
| 557 | + | |
561 | 558 | | |
562 | 559 | | |
563 | 560 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
600 | 600 | | |
601 | 601 | | |
602 | 602 | | |
| 603 | + | |
| 604 | + | |
603 | 605 | | |
| 606 | + | |
604 | 607 | | |
605 | 608 | | |
606 | 609 | | |
| |||
1120 | 1123 | | |
1121 | 1124 | | |
1122 | 1125 | | |
| 1126 | + | |
1123 | 1127 | | |
1124 | 1128 | | |
1125 | 1129 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
557 | 557 | | |
558 | 558 | | |
559 | 559 | | |
| 560 | + | |
560 | 561 | | |
561 | 562 | | |
562 | 563 | | |
| |||
0 commit comments
Comments
(0)