Thread

  1. Re: IO in wrong state on riscv64

    Alexander Lakhin <exclusion@gmail.com> — 2025-10-14T04:00:00Z

    Hello Thomas,
    
    13.10.2025 08:40, Thomas Munro wrote:
    > Thanks.  All seems to have something plausible in the right places,
    > but I know nothing about RISC-V... hmm, what happens if you replace
    > pg_{read,write}_barrier() with pg_memory_barrier(), in those three
    > functions?  And if it happens to help, perhaps you could try to figure
    > out which one(s) help?  Not that it should be necessary but as a clue
    > or to rule out this line of enquiry... I guess that should generate
    > FENCE RW,RW, meaning wait for all preceding reads and writes to
    > complete and don't let any following reads or writes begin, but that's
    > just from googling...
    
    The replacements doesn't work for me, unfortunately: I have 3 out of 30
    027_stream_regress test runs failed:
    2025-10-13 21:27:26.161 UTC [4181290:5] pg_regress/brin ERROR:  IO in wrong state: 0
    2025-10-13 21:27:26.161 UTC [4181290:6] pg_regress/brin STATEMENT: CREATE TABLE brintest (byteacol bytea,
    
    Disassembly of those three functions is attached.
    
    I'll try to find some simple C programs to test memory barriers outside of
    postgres...
    
    Best regards,
    Alexander