Merged
Conversation
…ent.
-monclient encodes subsystems by beacon-diff rules if BEACON_DIFF
bit is enabled by quorum
-monitor processes beacons by beacon-diff new schema
-monitor detects sequence out of order(ooo) condition and handles it
-in case ooo detected monitor send ack to the gw with the expected correct sequence
-monitor skips failovers for some interval when ooo detected
-monitor ignores all becons with incorrect sequences until gw sends expected one
-coding upgrade rules
Signed-off-by: Leonid Chernin <leonidc@il.ibm.com>
Fixes: https://tracker.ceph.com/issues/72394
(cherry picked from commit 3555a28)
Signed-off-by: Samuel Just <sjust@redhat.com> (cherry picked from commit 9580809)
NOPE NOPE In order for the client to safely send BEACON_DIFF messages, it needs to be the case that the leader at the time of receipt will support BEACON_DIFF. Simply using the connection features for the MonClient's target mon is insufficient, because it might be a peon. If the peon supports BEACON_DIFF and the leader does not the leader will either crash or interpret it as a full BEACON. Neither outcome is acceptable. Instead, we need to wire up a feature bit to the MonMap mon_feature_t members and the CompatSet. Adding FEATURE_BEACON_DIFF to ceph::features::mon get_supported() and get_persistent() ensures that once all monitors in the quorum support it, MonMap::get_required_features() will include it. See Elector::propose_to_peers, Monitor::(win|lose)_election, MonmapMonitor::apply_mon_features. Once FEATURE_BEACON_DIFF is present in MonMap::get_required_features(): - Monitor::apply_monmap_to_compatset_features() will prevent downgrades of the monitors by updating the CompatSet to include CEPH_MON_FEATURE_INCOMPAT_NVMEOF_BEACON_DIFF - Monitor::calc_quorum_requirements() will set Monitor::required_features to require the NVMEOF_BEACON_DIFF for any monitor peers. - MonClient::get_monmap_required_features() will eventually include ceph::features::mon::FEATURE_NVMEOF_BEACON_DIFF. Signed-off-by: Samuel Just <sjust@redhat.com> (cherry picked from commit e55ad7b)
…d gws Fix race issue of map corruption when deleted gw sends beacons but this gw data was removed from pending map and still exists in map. Process beacons only if GW's data exists in both maps: main-map and pending-map, otherwise just ignore beacons. fixes: https://tracker.ceph.com/issues/74160 Signed-off-by: Leonid Chernin <leonidc@il.ibm.com> (cherry picked from commit 3636dc3)
2453b1e to
5059a1b
Compare
athanatos
approved these changes
Feb 2, 2026
batrick
added a commit
to batrick/ceph
that referenced
this pull request
Mar 12, 2026
This reverts commit 6dddf54, reversing changes made to 07ec509. Backport 6dddf54 introduced a new connection feature bit NVMEOF_BEACON_DIFF but there are plans (ceph#66624) to make further enhancements on that feature bit. This would cause the mons to crash during upgrades. However, this connection feature bit should not have been added to begin with. The correct way to do this is extend e55ad7b by @athanatos to require `CEPH_MON_FEATURE_INCOMPAT_NVMEOF_BEACON_DIFF` if all mons support it. This should be done by having mons add/update their supported features the MonMap via an update from `MMonJoin` (see for instance `crush_loc` which was recently added to `mon_info_t`). Once the supported features indicated for each mon in the `MonMap` show they understand the new NVMEOF_BEACON_DIFF, then it should be turned on globally in the `MonMap` as a required feature (added to the incompat set). Conflicts: src/mon/NVMeofGwMon.h: conflicts with header change from 19c9be2 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
batrick
added a commit
to batrick/ceph
that referenced
this pull request
Mar 15, 2026
This reverts commit 6dddf54, reversing changes made to 07ec509. Backport 6dddf54 introduced a new connection feature bit NVMEOF_BEACON_DIFF but there are plans (ceph#66624) to make further enhancements on that feature bit. This would cause the mons to crash during upgrades. However, this connection feature bit should not have been added to begin with. The correct way to do this is extend e55ad7b by @athanatos to require `CEPH_MON_FEATURE_INCOMPAT_NVMEOF_BEACON_DIFF` if all mons support it. This should be done by having mons add/update their supported features the MonMap via an update from `MMonJoin` (see for instance `crush_loc` which was recently added to `mon_info_t`). Once the supported features indicated for each mon in the `MonMap` show they understand the new NVMEOF_BEACON_DIFF, then it should be turned on globally in the `MonMap` as a required feature (added to the incompat set). Conflicts: src/mon/NVMeofGwMon.h: conflicts with header change from 19c9be2 fix missing header change in ceph#66584 Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
batrick
added a commit
that referenced
this pull request
Mar 18, 2026
* refs/pull/67750/head: Revert "Merge pull request #66958 from Hezko/wip-74413-tentacle" Reviewed-by: Yuri Weinstein <yweins@redhat.com> Tested-by: Patrick Donnelly <pdonnell@redhat.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
backport tracker: https://tracker.ceph.com/issues/74413
backport of #65563
parent tracker: https://tracker.ceph.com/issues/72394
this backport was staged using ceph-backport.sh version 16.0.0.6848
find the latest version at https://github.com/ceph/ceph/blob/main/src/script/ceph-backport.sh