Actions
Bug #8991
closedrgw: RGWRados::list_bi_log_entries() doesn't clear list
Status:
Resolved
Priority:
High
Assignee:
-
Target version:
-
% Done:
0%
Source:
other
Tags:
Backport:
Regression:
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
I think there are logic error about max_entries betweenRGWOp_BILog_List::execute() and store->list_bi_log_entries. Look at the codes: in RGWOp_BILog_List::execute() do { list<rgw_bi_log_entry> entries; int ret = store->list_bi_log_entries(bucket_info.bucket, marker, max_entries - count, entries, &truncated); if (ret < 0) { dout(5) << "ERROR: list_bi_log_entries()" << dendl; return; } count += entries.size(); send_response(entries, marker); } while (truncated && count < max_entries); and RGWRados::list_bi_log_entries int ret = cls_rgw_bi_log_list(index_ctx, oid, marker, max - result.size(), entries, truncated); I think there is a conflict between "max_entries - count" and "max - result.size()". I think this bug is hard to test since I don't know how the bi log creates. Vincent
It also calls list::size() which should be avoided.
Actions