Re: "ERROR: could not open relation with OID 16391" error was encountered when reindexing
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: feichanghong <feichanghong@qq.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Aleksander Alekseev <aleksander@timescale.com>, pgsql-hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-01-19T05:26:54Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Improve handling of dropped partitioned indexes for REINDEX INDEX
- b6f2e019d66f 14.11 landed
- a0c19de11566 15.6 landed
- c030e263e7fe 16.2 landed
- 0ae3b4662103 17.0 landed
-
Add try_index_open(), conditional variant of index_open()
- b685b41cf0a3 14.11 landed
- 1cf2dba84b18 15.6 landed
- 7ce65c6f7209 16.2 landed
- 8013850c853d 17.0 landed
On Wed, Jan 17, 2024 at 04:03:46PM +0800, feichanghong wrote: > It has been verified that the patch in the attachment can solve the > above problems. I sincerely look forward to your suggestions! Thanks for the patch. I have completely forgotten to update this thread. Except for a few comments and names that I've tweaked, this was OK, so applied and backpatched after splitting things into two: - One commit for try_index_open(). - Second commit for the fix in reindex_index(). I've looked at the concurrent paths as well, and even if these involve more relations opened we maintain a session lock on the parent relations that we manipulate, so I could not see a pattern where the index would be dropped and where we'd try to open it. Now, there are cases where it is possible to deadlock for the concurrent paths, but that's not new: schema or database level reindexes can also hit that. This is one of these areas where tests are hard to write now because we want to stop operations at specific points but we cannot. -- Michael