On Fri, 28 Feb 2025 at 23:31, Mark Dilger <mark.dil...@enterprisedb.com> wrote:
> The only obvious definition of "wrong" for this is that gin index scans > return different result sets than table scans over the same data. Using your > much smaller reproducible test case, and adding rows like: Yeach, you are 100% right. Actually, along this thread, we have not spotted any GIN bugs yet, only GIN amcheck bugs. This turns out to be also an GIN amcheck bug: ``` DEBUG: comparing for offset 79 category 2 key attnum 1 DEBUG: comparing for offset 80 category 3 key attnum 1 DEBUG: comparing for offset 81 category 0 key attnum 2 LOG: index "ginidx" has wrong tuple order on entry tree page, block 2, offset 81, rightlink 4294967295 DEBUG: comparing for offset 82 category 0 key attnum 2 .... DEBUG: comparing for offset 100 category 0 key attnum 2 DEBUG: comparing for offset 101 category 2 key attnum 2 DEBUG: comparing for offset 102 category 3 key attnum 2 DEBUG: comparing for offset 103 category 0 key attnum 3 LOG: index "ginidx" has wrong tuple order on entry tree page, block 2, offset 103, rightlink 4294967295 DEBUG: comparing for offset 104 category 0 key attnum 3 DEBUG: comparing for offset 105 category 0 key attnum 3 ``` Turns out we compare page entries for different attributes in gin_check_parent_keys_consistency. Trivial fix attached (see v37-0004). I now simply compare current and prev attribute numbers. This revolves issue discovered by `v0-0001-Add-a-reproducible-test-case-for-verify_gin-error.patch.no_apply`. However, the stress test seems to still not pass. On my pc, it never ens, all processes are in DELETE waiting/UPDATE waiting state. I will take another look tomorrow. p.s. I am just about to send this message, while i discovered we now miss v34-0003-Add-gist_index_check-function-to-verify-GiST-ind.patch & v34-0005-Add-GiST-support-to-pg_amcheck.patch from this patch series ;( -- Best regards, Kirill Reshke
v37-0004-Fix-for-gin_index_check.patch
Description: Binary data
v37-0003-Fix-wording-in-GIN-README.patch
Description: Binary data
v37-0002-Add-gin_index_check-to-verify-GIN-index.patch
Description: Binary data
v37-0001-Refactor-amcheck-internals-to-isolate-common-loc.patch
Description: Binary data
v37-0005-Add-gin-index-checking-test-for-jsonb-data.patch
Description: Binary data
v37-0006-Add-gin-to-the-create-index-concurrently-tap-tes.patch
Description: Binary data
v37-0007-Stress-test-verify_gin-using-pgbench.patch
Description: Binary data