mds: QuiesceDbManager: mark next retry event during bootstrap#57946
mds: QuiesceDbManager: mark next retry event during bootstrap#57946leonid-s-usov merged 1 commit intomainfrom
Conversation
Fixes: https://tracker.ceph.com/issues/66406 Signed-off-by: Leonid Usov <leonid.usov@ibm.com>
a98ff4a to
b3edbba
Compare
|
jenkins test make check |
|
jenkins test api |
3 similar comments
|
jenkins test api |
|
jenkins test api |
|
jenkins test api |
|
tested at https://pulpito.ceph.com/leonidus-2024-06-18_17:15:58-fs-wip-lusov-quiesce-distro-default-smithi/, no quiesce errors |
|
jenkins test api |
| } else { | ||
| // not yet there. Put the acks and requests back onto the queue and wait for updates | ||
| // We should mark the next event age in case we get caught up in the sleep above | ||
| next_event_at_age = db.get_age() + bootstrap_delay; |
There was a problem hiding this comment.
I'm finding it hard to understand this, where is this modified val being used? next_event_at_age is being updated in the else blocks, and then the QuiesceDbManager::quiesce_db_thread_main() doesn't make use of it anywhere, am i missing something?
There was a problem hiding this comment.
another (dumb) question, if the next_event_at_age is already max(), we're adding some duration to it here?
There was a problem hiding this comment.
next_event_at_age is used here and here. It will cause the main thread to make a pass at or after the designated age.
This var is initialized with max() to denote "no time-based events are pending", which will make the main thread sleep until the submit condition is triggered.
However, in the body of the main thread loop the next_event_at_age is updated with the output of the various subroutines, e.g. at the line you commented on.
There was a problem hiding this comment.
If the db thread has some work, and the boostrap_interval is non-zero, what happens in that case?
Fixes: https://tracker.ceph.com/issues/66406
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