Skip to content

Commit 0e223fd

Browse files
committed
rgw/aio: avoid infinite recursion in aio_abstract()
a recent regression from 320a217 causes aio_abstract() to recurse when given an empty optional_yield. this is exposed by the librgw_file tests Fixes: https://tracker.ceph.com/issues/64543 Signed-off-by: Casey Bodley <[email protected]>
1 parent 4b9662c commit 0e223fd

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/rgw/rgw_aio.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Aio::OpFunc aio_abstract(librados::IoCtx ctx, Op&& op, jspan_context* trace_ctx
5959
(void)trace_ctx; // suppress unused trace_ctx warning. until we will support the read op trace
6060
r.result = ctx.aio_operate(r.obj.oid, s->c, &op, &r.data);
6161
} else {
62-
r.result = ctx.aio_operate(r.obj.oid, s->c, &op, trace_ctx);
62+
r.result = ctx.aio_operate(r.obj.oid, s->c, &op, 0, trace_ctx);
6363
}
6464
if (r.result < 0) {
6565
// cb() won't be called, so release everything here
@@ -124,7 +124,7 @@ Aio::OpFunc aio_abstract(librados::IoCtx ctx, Op&& op, optional_yield y, jspan_c
124124
return aio_abstract(std::move(ctx), std::forward<Op>(op),
125125
y.get_io_context(), y.get_yield_context(), trace_ctx);
126126
}
127-
return aio_abstract(std::move(ctx), std::forward<Op>(op), null_yield, trace_ctx);
127+
return aio_abstract(std::move(ctx), std::forward<Op>(op), trace_ctx);
128128
}
129129

130130
} // anonymous namespace

0 commit comments

Comments
 (0)