Re: [BUG] false positive in bt_index_check in case of short 4B varlena datum
Alexander Lakhin <exclusion@gmail.com>
From: Alexander Lakhin <exclusion@gmail.com>
To: Alexander Korotkov <aekorotkov@gmail.com>
Cc: "Andrey M. Borodin" <x4mmm@yandex-team.ru>,
Michael Zhilin <m.zhilin@postgrespro.ru>, pgsql-bugs@postgresql.org,
Yura Sokolov <y.sokolov@postgrespro.ru>
Date: 2024-03-20T16:00:00Z
Lists: pgsql-bugs
Hi Alexander, 20.03.2024 13:24, Alexander Korotkov wrote: > BTW, 0001 and 0002 look good to me. I'm going to push them if no objections. Maybe these patches should be polished before committing: +-- directory paths are passed to us in environment variables looks like an irrelevant change (perhaps it was relevant in v1/v2, but that's not so now.) I'm also not sure about: +-- BUG: must support different header size of short varlena datum +-- https://postgr.es/m/7bdbe559-d61a-4ae4-a6e1-48abdf3024cc@postgrespro.ru AFAICS, for most similar bug fixes, the bug report referenced in a commit message only (there is no such comment in 0002, either). I also suspect that the comment: * Also tuple had short varlena datums with 4B header. ... might looks incorrect for native English speakers. This patch also adds a couple of empty lines, which may be not needed. @@ -2973,6 +2973,7 @@ bt_normalize_tuple(BtreeCheckState *state, IndexTuple itup) * index without further processing, so an external varlena header * should never be encountered here */ > + if (VARATT_IS_EXTERNAL(DatumGetPointer(normalized[i]))) ereport(ERROR, (errcode(ERRCODE_INDEX_CORRUPTED), --- } + /* ... + need_free[i] = true; + } > + } Best regards, Alexander
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
amcheck: Use correct varlena size accessor in bt_normalize_tuple()
- 4284476c0f67 15 (unreleased) landed
- c89a1ca01344 16 (unreleased) landed
- 8abb8a1555f4 17 (unreleased) landed
- af09b18cbadb 14 (unreleased) landed
- 897e79486296 18 (unreleased) landed
- da1eff08a5be 19 (unreleased) landed