Re: TRAP: failed Assert("offsets[i] > offsets[i - 1]"), File: "tidstore.c"

From: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
To: Andrei Lepikhov <lepihov(at)gmail(dot)com>
Cc: PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: TRAP: failed Assert("offsets[i] > offsets[i - 1]"), File: "tidstore.c"
Date: 2026-04-15 20:50:01
Message-ID: CAD21AoBVEcC5stzLr80RgaWuBh0EoyRQys_aeOz0ceogMVREcQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Wed, Apr 15, 2026 at 5:48 AM Andrei Lepikhov <lepihov(at)gmail(dot)com> wrote:
>
> Hi,
>
> While experimenting with query plans, I periodically see test_tidstore
> fail on the assertion in TidStoreSetBlockOffsets().
>
> The cause is that the harness function do_set_block_offsets() forwards
> the SQL array straight to TidStoreSetBlockOffsets(), which has an
> explicit contract:
>
> "The offset numbers 'offsets' must be sorted in ascending order."
>
> array_agg() without ORDER BY gives no such guarantee, and plan shapes
> that reshuffle the input can deliver the offsets out of order and trip
> the Assert.
>
> The issue is minor and doesn't expose any underlying bug, but it is
> still worth fixing: it removes a source of flaky test runs and makes
> life easier for extension developers who reuse the same pattern.
>
> Patch attached.

Thank you for the report.

Could you provide the reproducer of the assertion failure? IIRC there
have not been such reports on the community so far and the test should
be included in the patch anyway.

Regards,

--
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tatsuo Ishii 2026-04-16 04:53:42 Re: BUG #19354: JOHAB rejects valid byte sequences
Previous Message David G. Johnston 2026-04-15 15:19:02 Re: BUG #19456: # Unit-Labeling Issue: `pg_size_pretty()` Incorrectly Labels Binary Units as Decimal Units