diff options
author | Andres Freund | 2020-11-26 00:43:33 +0000 |
---|---|---|
committer | Andres Freund | 2020-11-26 00:43:33 +0000 |
commit | 9d84ab6dc2b1c7245303ac8545c0e32772543af3 (patch) | |
tree | 323ceb89b90829b0be8c2ffddd96689723c5f765 | |
parent | ca4abfbf68210ae7275cc7f113770e634046daaf (diff) |
fixup! aio: Remove unnecessary waits at commit / abort time.aio-before-rebase-2020-11-25
-rw-r--r-- | src/backend/storage/ipc/aio.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/backend/storage/ipc/aio.c b/src/backend/storage/ipc/aio.c index 3c3cf1027b..45ea8cba0b 100644 --- a/src/backend/storage/ipc/aio.c +++ b/src/backend/storage/ipc/aio.c @@ -793,7 +793,12 @@ pgaio_at_abort(void) pgaio_io_release(io); } - Assert(dlist_is_empty(&my_aio->issued)); + while (!dlist_is_empty(&my_aio->issued)) + { + PgAioInProgress *io = dlist_head_element(PgAioInProgress, owner_node, &my_aio->issued); + + pgaio_io_release(io); + } } void @@ -811,12 +816,19 @@ pgaio_at_commit(void) { PgAioInProgress *io = dlist_head_element(PgAioInProgress, owner_node, &my_aio->outstanding); - elog(WARNING, "leaked io %zu", io - aio_ctl->in_progress_io); + elog(WARNING, "leaked outstanding io %zu", io - aio_ctl->in_progress_io); pgaio_io_release(io); } - Assert(dlist_is_empty(&my_aio->issued)); + while (!dlist_is_empty(&my_aio->issued)) + { + PgAioInProgress *io = dlist_head_element(PgAioInProgress, owner_node, &my_aio->issued); + + elog(WARNING, "leaked issued io %zu", io - aio_ctl->in_progress_io); + + pgaio_io_release(io); + } } static int |