Re: MarkBufferDirty Assert held LW_EXCLUSIVE lock fail when ginFinishSplit
feichanghong <feichanghong@qq.com>
From: feichanghong <feichanghong@qq.com>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: pgsql-bugs <pgsql-bugs@lists.postgresql.org>
Date: 2024-01-22T15:27:11Z
Lists: pgsql-bugs
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix locking when fixing an incomplete split of a GIN internal page
- e6511fe649c5 12.18 landed
- e74c916657b5 13.14 landed
- f120c0872427 14.11 landed
- e43425f48154 15.6 landed
- b899e00e716b 16.2 landed
- 6a1ea02c491d 17.0 landed
-
Add backend support for injection points
- d86d20f0ba79 17.0 cited
Thank you for your attention. > Thanks, I'll look into this. The fix seems fine at a quick glance, but I'll think about the performance aspect a bit more. I apologize for the mistake in my patch: "if GinPageIsIncompleteSplit(page)" is missing a parenthesis, it should be "if (GinPageIsIncompleteSplit(page))" > Another way to create a scenario with incomplete splits, which doesn't involve any crashes or errors, would be to perform PITR to just between the insert and the finish-split records. But the fault-injection seems easier. I agree it, fault-injection is easier than PITR. Best Regards, Fei Changhong Alibaba Cloud Computing Ltd.