Re: BUG #17372: Altering statistics during concurrent drop can lead to a server crash
Alexander Law <exclusion@gmail.com>
From: Alexander Lakhin <exclusion@gmail.com>
To: Tomas Vondra <tomas.vondra@enterprisedb.com>,
pgsql-bugs@lists.postgresql.org
Date: 2022-01-21T06:00:00Z
Lists: pgsql-bugs
Hello Tomas, 20.01.2022 20:57, Tomas Vondra wrote: > Thanks for the report - I've reproduced it using your script (I had to > add a short wait before the syscache lookup). The issue is fairly > simple, we never check we actually found a tuple in the syscache, i.e. > there's no HeapTupleIsValid() call. We check the OID earlier, but the > tuple may have disappeared since then. > > IMO the usual "cache lookup failed" error that we throw in other places > in similar cases is good enough. We already fail with other errors > (tuple concurrently updated/deleted) here. Yes, the rough, but simple search: grep -Porz '.*=\s*SearchSysCache1.*\n(?!(.*|.*\n.*|.*\n.*\n.*|.*\n.*\n.*\n.*)HeapTupleIsValid)' ./ finds only this place. Your fix works for me. Thanks! Best regards, Alexander
Commits
-
Check syscache result in AlterStatistics
- 267ccc38ba6a 13.6 landed
- a192243c75be 14.2 landed
- 6d554e3fcd6f 15.0 landed