| From: | Yurii Rashkovskii <yrashk(at)omnigres(dot)com> |
|---|---|
| To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
| Subject: | Failing assertion in predicate.c |
| Date: | 2024-10-16 17:28:59 |
| Message-ID: | CAG=VW14pkpYzyBq2Mn0vkpAcZmfDRTFuk_tYRw27XuHxU-=6Aw@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi pg-hackers,
I am encountering an assertion failure in predicate.c when running a high
volume of short serializable transactions. The error occurs during stress
testing with many concurrent connections.
I have replicated this issue on two separate macOS M1 systems, but I have
not been able to reproduce it on Linux. The issue arises in both PostgreSQL
16 and 17. Interestingly, introducing a delay of just 1 ms between
statements seems to prevent the assertion from failing.
The specific failure I encounter is:
```
TRAP: failed Assert("TransactionIdIsValid(tailXid)"), File: "predicate.c",
Line: 885, PID: 1350
```
For anyone interested, I have created a reproduction program available
here: https://github.com/yrashk/pg-predicate-tailxid-assertion-issue. The
program establishes a connection pool and issues simple INSERT statements,
each wrapped in its own serializable transaction.
I would appreciate any insights into this issue or potential steps for
further debugging.
--
Founder at Omnigres
https://omnigres.com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Bruce Momjian | 2024-10-16 17:30:49 | Re: optimize hashjoin |
| Previous Message | Bruce Momjian | 2024-10-16 17:26:57 | Re: DOCS - pg_replication_slot . Fix the 'inactive_since' description |