osd/PrimaryLogPG: erase gather op during op cancel#55410
osd/PrimaryLogPG: erase gather op during op cancel#55410NitzanMordhai wants to merge 1 commit intoceph:mainfrom
Conversation
|
jenkins test api |
|
@NitzanMordhai What's wrong with invoking erase on the iterator? Invoking erase on the iterator should have the same effect as invoking it on the key, but much more efficiently (constant time rather than logarithmic). I don't see a mechanism that would allow this to fix the bug linked in the ticket. |
seeing that. will rework that. |
|
@athanatos it looks like the peering process didn't call start_peering_interval which is supposed to call on_change which triggers the cleanup and cancel of the gather. we also have finish methode in the gather (struct C_gather) that getting r=-125) but doesn't clear the cls_gather_ops map, that can solve the issue as well |
The erase exist, but it try to delete iter and not the name of the soid Fixes: https://tracker.ceph.com/issues/64258 Signed-off-by: Nitzan Mordechai <nmordech@redhat.com>
b4948fc to
a324759
Compare
|
@athanatos Since we are not have new interval, the cancel was not invoked, i added logic to cancel the ops if we already have them in the map (just like copy ops) |
|
jenkins test make check |
If peering really skipped start_peering_interval, that would be an incredibly huge bug. Do you have logs? |
@athanatos i was able to recreate the error with my local build, can you check the logs on folio03? /home/nmordech/output_gather or should i move them to somewhere else? |
|
@NitzanMordhai See my comment https://tracker.ceph.com/issues/64258 -- there was no interval change. The entry is there because the op was retried and the previous attempt was still in progress. This feature was implemented as an experiment, but I'm not aware of any serious users. For now, I suggest:
@NitzanMordhai Can you take care of the above? |
@athanatos thanks for reviewing it, will do that |
|
Just to the record: |
The erase exist, but it try to delete iter and not the name of the soid
Fixes: https://tracker.ceph.com/issues/64258
Signed-off-by: Nitzan Mordechai nmordech@redhat.com
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windowsjenkins test rook e2e