Hi Alexander, 06.11.2023 12:30, Alexander Korotkov wrote:
Surely these would significantly sacrifice accuracy. But we have to do so in order to avoid reporting false errors.
I've reduced the dirty reproducer Daniel Shelepanov posted initially to the following: numdbs=10 for ((d=1;d<=$numdbs;d++)); do createdb db$d psql db$d -c "create extension pg_visibility" done for ((i=1;i<=300;i++)); do echo "iteration $i" for ((d=1;d<=$numdbs;d++)); do ( echo " create table vacuum_test as select 42 i; vacuum (disable_page_skipping) vacuum_test; select * from pg_check_visible('vacuum_test'); " | psql db$d -a -q >psql-$d.log 2>&1 ) & done wait res=0 for ((d=1;d<=$numdbs;d++)); do grep -q '0 rows' psql-$d.log || { echo "Error condition in psql-$d.log:"; cat psql-$d.log; res=1; break; } psql db$d -q -c "drop table vacuum_test" done [ $res == 0 ] || break; done It looks like the v2 patch doesn't fix the original issue. Maybe I miss something, but with the patch applied, I see the failure immediately, though without the patch several iterations are needed to get it. Best regards, Alexander