Thread

  1. Failing assertion in predicate.c

    Yurii Rashkovskii <yrashk@omnigres.com> — 2024-10-16T17:28:59Z

    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
    
  2. Re: Failing assertion in predicate.c

    Andrew Bille <andrewbille@gmail.com> — 2024-10-17T05:50:12Z

    Hi, Yurii!
    
    Please look at the bug report, I filed yesterday almost simultaneously with
    you:
    https://www.postgresql.org/message-id/18658-7dab125ec688c70b%40postgresql.org
    
    Thanks!
    
    On Thu, Oct 17, 2024 at 12:49 PM Yurii Rashkovskii <yrashk@omnigres.com>
    wrote:
    
    > 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
    >
    >