mirror of
https://github.com/ceph/ceph
synced 2025-03-05 07:48:55 +00:00
ReplicatedPG: correctly handle omap key larger than max chunk
Backport: bobtail Signed-off-by: Samuel Just <sam.just@inktank.com>
This commit is contained in:
parent
09c71f2f5e
commit
c3dec3e30a
@ -5561,10 +5561,15 @@ int ReplicatedPG::send_push(int prio, int peer,
|
||||
for (iter->lower_bound(progress.omap_recovered_to);
|
||||
iter->valid();
|
||||
iter->next()) {
|
||||
if (available < (iter->key().size() + iter->value().length()))
|
||||
if (!subop->omap_entries.empty() &&
|
||||
available <= (iter->key().size() + iter->value().length()))
|
||||
break;
|
||||
subop->omap_entries.insert(make_pair(iter->key(), iter->value()));
|
||||
available -= (iter->key().size() + iter->value().length());
|
||||
|
||||
if ((iter->key().size() + iter->value().length()) <= available)
|
||||
available -= (iter->key().size() + iter->value().length());
|
||||
else
|
||||
available = 0;
|
||||
}
|
||||
if (!iter->valid())
|
||||
new_progress.omap_complete = true;
|
||||
|
Loading…
Reference in New Issue
Block a user