On Wed, Sep 15, 2021 at 4:34 AM Mark Dilger <mark.dil...@enterprisedb.com> wrote: > > > > > On Jun 16, 2020, at 6:55 AM, amul sul <sula...@gmail.com> wrote: > > > > (2) if the session is idle, we also need the top-level abort > > record to be written immediately, but can't send an error to the client > > until the next > > command is issued without losing wire protocol synchronization. For now, we > > just use > > FATAL to kill the session; maybe this can be improved in the future. > > Andres, > > I'd like to have a patch that tests the impact of a vacuum running for xid > wraparound purposes, blocked on a pinned page held by the cursor, when > another session disables WAL. It would be very interesting to test how the > vacuum handles that specific change. I have not figured out the cleanest way > to do this, though, as we don't as a project yet have a standard way of > setting up xid exhaustion in a regression test, do we? The closest I saw to > it was your work in [1], but that doesn't seem to have made much headway > recently, and is designed for the TAP testing infrastructure, which isn't > useable from inside an isolation test. Do you have a suggestion how best to > continue developing out the test infrastructure? > > > Amul, > > The most obvious way to test how your ALTER SYSTEM READ ONLY feature > interacts with concurrent sessions is using the isolation tester in > src/test/isolation/, but as it stands now, the first permutation that gets a > FATAL causes the test to abort and all subsequent permutations to not run. > Attached patch v34-0009 fixes that. >
Interesting. > Attached patch v34-0010 adds a test of cursors opened FOR UPDATE interacting > with a system that is set read-only by a different session. The expected > output is worth reviewing to see how this plays out. I don't see anything in > there which is obviously wrong, but some of it is a bit clunky. For example, > by the time the client sees an error "FATAL: WAL is now prohibited", the > system may already have switched back to read-write. Also, it is a bit > strange to get one of these errors on an attempted ROLLBACK. Once again, not > wrong as such, but clunky. > Can't we do the same in the TAP test? If the intention is only to test session termination when the system changes to WAL are prohibited then that I have added in the latest version, but that test does not reinitiate the same connection again, I think that is not possible there too. Regards, Amul