summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres Freund2020-11-26 00:43:33 +0000
committerAndres Freund2020-11-26 00:43:33 +0000
commit9d84ab6dc2b1c7245303ac8545c0e32772543af3 (patch)
tree323ceb89b90829b0be8c2ffddd96689723c5f765
parentca4abfbf68210ae7275cc7f113770e634046daaf (diff)
fixup! aio: Remove unnecessary waits at commit / abort time.aio-before-rebase-2020-11-25
-rw-r--r--src/backend/storage/ipc/aio.c18
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