mon, osd, *: expose upmap-primary in OSDMap::get_features()#57776
mon, osd, *: expose upmap-primary in OSDMap::get_features()#57776
Conversation
idryomov
left a comment
There was a problem hiding this comment.
As automated test coverage is clearly lacking, it would be nice if the list of test cases that were executed manually on this PR was posted for the record.
|
|
lgtm |
idryomov
left a comment
There was a problem hiding this comment.
Only changed the commit description of the original commit to convey the manual testing steps.
I expected to see it in a comment, but since you added it to the commit messages to be preserved in git, some nits (feel free to ignore!):
*** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH ***and2024-05-30T08:56:41.464+0000 7feb3d44a700 -1 WARNING: all dangerous and experimental features are enabled.lines are unnecessary clutterError EINVAL: osd.1 is already primary for pg 1.0output doesn't have a corresponding command (probably a leftover from removing a command with a typo?)- in the second commit message, it would be nice to include
ceph daemon mon.a sessionsoutput with the quincy client or mention that it's a continuation of the test from the previous commit withceph -wfrom quincy still running
|
@rzarzynski can you stage a Reef backport too? We cherry-picked it on the reef-release, but we should also merge this to Reef (unless I'm mistaken) |
|
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
This is a minimal fix to ensure only peers understanding
`pg-upmap-primary` are able to connect, and thus to exclude
the possibility of running into the `pg_upmap_primaries.empty()`
assertion in encoders.
Fixes for other problems will follow up.
The intention is to ship this patch in the very next minor
release of reef.
Manual testing
--------------
\### start using upmap-primar is presence of `quincy` client
NOTE: incompatible clients aren't disconnected but this is
known and expected as we lack the machinery.
```
[rzarzynski@o06 build]$ bin/ceph osd get-require-min-compat-client
reef
[rzarzynski@o06 build]$ bin/ceph daemon mon.a sessions | jq -jr '.[] | .name, "\t", .con_features, "\t", .con_features_hex, "\n"' | grep client
client.? 4540701547738038271 3f03cffffffdffff
client.? 4540138320759226367 3f01cfbf7ffdffff
[rzarzynski@o06 build]$ bin/ceph osd pool create test_pool 1 1
pool 'test_pool' created
[rzarzynski@o06 build]$ bin/ceph osd pg-upmap-primary 1.0 2
change primary for pg 1.0 to osd.2
[rzarzynski@o06 build]$ bin/ceph daemon mon.a sessions | jq -jr '.[] | .name, "\t", .con_features, "\t", .con_features_hex, "\n"' | grep client
client.? 4540701547738038271 3f03cffffffdffff
client.? 4540138320759226367 3f01cfbf7ffdffff
```
\### `main` client is still able to connect
```
[rzarzynski@o06 build]$ bin/ceph -w
cluster:
id: d570a7c-84ca-4fd0-aafb-80138762c6af
health: HEALTH_WARN
11 mgr modules have failed dependencies
1 pool(s) do not have an application enabled
services:
mon: 1 daemons, quorum a (age 64m)
mgr: x(active, since 64m)
osd: 3 osds: 3 up (since 64m), 3 in (since 64m)
data:
pools: 1 pools, 1 pgs
objects: 0 objects, 0 B
usage: 3.0 GiB used, 300 GiB / 303 GiB avail
pgs: 1 active+clean
```
\### `quincy` client is refused
```
[rzarzynski@o06 build-quincy]$ bin/ceph -s -c /home/rzarzynski/ceph2/build/ceph.conf
2024-05-30T08:59:42.411+0000 7f0911a9b700 -1 --2- 127.0.0.1:0/2812481872 >> [v2:127.0.0.1:40536/0,v1:127.0.0.1:40537/0] conn(0x7f090c111500 0x7f090c1118f0 secure :-1 s=SESSION_CONNECTING pgs=0 cs=0 l=0 rev1=1 crypto rx=0x7f08fc0048c0 tx=0x7f08fc009e30 comp rx=0 tx=0).handle_ident_missing_features client does not support all server features: 80000000
2024-05-30T08:59:42.612+0000 7f0911a9b700 0 --2- 127.0.0.1:0/2812481872 >> [v2:127.0.0.1:40536/0,v1:127.0.0.1:40537/0] conn(0x7f090c111500 0x7f090c1118f0 unknown :-1 s=AUTH_CONNECTING pgs=0 cs=0 l=0 rev1=1 crypto rx=0 tx=0 comp rx=0 tx=0).send_auth_request get_initial_auth_request returned -2
```
\### stop using upmap-primary
```
[rzarzynski@o06 build]$ bin/ceph osd rm-pg-upmap-primary 1.0
clear 1.0 pg_upmap_primary mapping
```
\### `quincy` client may connect again
```
[rzarzynski@o06 build-quincy]$ bin/ceph -s -c /home/rzarzynski/ceph2/build/ceph.conf
cluster:
id: d570a7c-84ca-4fd0-aafb-80138762c6af
health: HEALTH_WARN
11 mgr modules have failed dependencies
1 pool(s) do not have an application enabled
services:
mon: 1 daemons, quorum a (age 77m)
mgr: x(active, since 77m)
osd: 3 osds: 3 up (since 76m), 3 in (since 76m)
data:
pools: 1 pools, 1 pgs
objects: 0 objects, 0 B
usage: 3.0 GiB used, 300 GiB / 303 GiB avail
pgs: 1 active+clean
```
Fixes: https://tracker.ceph.com/issues/61948
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
jenkins test make check |
|
jenkins test api |
|
jenkins test make check |
|
@rzarzynski @ljflores pls merge when all checks passed |
|
jenkins test make check |
mon, osd, *: expose upmap-primary in OSDMap::get_features()
upmap-read mode of the balancer isn't supported by the kernel client. There was a recent change on the RADOS side which actually enforced this, see ceph/ceph#57776. Prior to 18.2.4 and 19.1.1 all sorts of incompatibility checks were missing in this area. So we need to revert upmap-read mode for now. Signed-off-by: sp98 <sapillai@redhat.com>
upmap-read mode of the balancer isn't supported by the kernel client. There was a recent change on the RADOS side which actually enforced this in ceph/ceph#57776.Prior to 18.2.4 and 19.1.1 all sorts of incompatibility checks were missing in this area. So we need to revert upmap-read mode for now. Signed-off-by: sp98 <sapillai@redhat.com>
upmap-read mode of the balancer isn't supported by the kernel client. There was a recent change on the RADOS side which actually enforced this in ceph/ceph#57776.Prior to 18.2.4 and 19.1.1 all sorts of incompatibility checks were missing in this area. So we need to revert upmap-read mode for now. Signed-off-by: sp98 <sapillai@redhat.com>
upmap-read mode of the balancer isn't supported by the kernel client. There was a recent change on the RADOS side which actually enforced this in ceph/ceph#57776.Prior to 18.2.4 and 19.1.1 all sorts of incompatibility checks were missing in this area. So we need to revert upmap-read mode for now. Signed-off-by: sp98 <sapillai@redhat.com>
upmap-read mode of the balancer isn't supported by the kernel client. There was a recent change on the RADOS side which actually enforced this in ceph/ceph#57776.Prior to 18.2.4 and 19.1.1 all sorts of incompatibility checks were missing in this area. So we need to revert upmap-read mode for now. Signed-off-by: sp98 <sapillai@redhat.com>
This is a minimal fix to ensure only peers understanding
pg-upmap-primaryare able to connect, and thus to exclude the possibility of running into thepg_upmap_primaries.empty()assertion in encoders.Fixes for other problems will follow up.
The intention is to ship this patch in the very next minor release of reef.
Fixes: https://tracker.ceph.com/issues/61948
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