Re: Why is src/test/modules/committs/t/002_standby.pl flaky?
Alexander Law <exclusion@gmail.com>
From: Alexander Lakhin <exclusion@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: Thomas Munro <thomas.munro@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>,
Andrew Dunstan <andrew@dunslane.net>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-02-12T10:00:00Z
Lists: pgsql-hackers
Attachments
- libpqrcv-diagnostic.patch (text/x-patch) patch
Hello Andres, 11.02.2022 05:22, Andres Freund wrote: > Over in another thread I made some wild unsubstantiated guesses that the > windows issues could have been made much more likely by a somewhat odd bit of > code in PQisBusy(): > > https://postgr.es/m/1959196.1644544971%40sss.pgh.pa.us > > Alexander, any chance you'd try if that changes the likelihood of the problem > occurring, without any other fixes / reverts applied? Unfortunately I haven't seen an improvement for the test in question. With the PQisBusy-fix.patch from [1] and without any other changes on the master branch (52377bb8) it still fails (on iterations 13, 5, 2, 2 for me). The diagnostic logging (in attachment) added: 2022-02-12 01:04:16.341 PST [4912] LOG: libpqrcv_receive: PQgetCopyData returned 0 2022-02-12 01:04:16.341 PST [4912] LOG: libpqrcv_receive: PQgetCopyData 2 returned -1 2022-02-12 01:04:16.341 PST [4912] LOG: libpqrcv_receive: end-of-streaming or error: -1 2022-02-12 01:04:16.341 PST [4912] LOG: libpqrcv_PQgetResult: streamConn->asyncStatus: 1 && streamConn->status: 0 2022-02-12 01:04:16.341 PST [4912] LOG: libpqrcv_receive libpqrcv_PQgetResult returned 10551584, 1 2022-02-12 01:04:16.341 PST [4912] LOG: libpqrcv_receive libpqrcv_PQgetResult PGRES_COMMAND_OK 2022-02-12 01:04:16.341 PST [4912] LOG: libpqrcv_PQgetResult: streamConn->asyncStatus: 1 && streamConn->status: 0 2022-02-12 01:04:16.341 PST [4912] LOG: libpqrcv_PQgetResult loop before WaitLatchOrSocket 2022-02-12 01:04:16.341 PST [4912] LOG: WSAEventSelect event->fd: 948, flags: 21 2022-02-12 01:04:16.341 PST [4912] LOG: WaitLatchOrSocket before WaitEventSetWait 2022-02-12 01:04:16.341 PST [4912] LOG: WaitEventSetWait before WaitEventSetWaitBlock 2022-02-12 01:04:16.341 PST [4912] LOG: WaitEventSetWaitBlock before WaitForMultipleObjects: 3 ... shows that before the doomed WaitForMultipleObjects() call the field conn->status is 0 (CONNECTION_OK). [1] https://www.postgresql.org/message-id/2187263.1644616494%40sss.pgh.pa.us Best regards, Alexander
Commits
-
Revert "graceful shutdown" changes for Windows.
- 29992a6a509b 15.0 landed
-
Revert "graceful shutdown" changes for Windows, in back branches only.
- bbb1caf6b220 11.15 landed
- 75674c7ec1b1 14.2 landed
- 64b2c6507e57 12.10 landed
- 645c9457f296 10.20 landed
- 213c5aa3bdba 13.6 landed