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 →
  1. Fix locking when fixing an incomplete split of a GIN internal page

  2. Add backend support for injection points

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.