build flavors: Cleanup "crimson", introduce "debug"#2497
build flavors: Cleanup "crimson", introduce "debug"#2497djgalloway merged 3 commits intoceph:mainfrom
Conversation
Currently, the only flavor used for testing is "default".
While this ensures that the tested flavor matches the released flavor, it can also be a limitation.
Introducing a debug flavor would allow us to test branches that require additional or more thorough validation.
The main difference is that built-in assertions would be compiled in.
The reasons for this change are:
a) The Crimson suite uses a crimson-debug flavor for project PR gating.
The next commit will clean up the Crimson flavor entirely,
and the new debug flavor introduced here could be used as its replacement.
b) Good practice: having an additional build with debug enabled is useful
when retesting or performing extra checks.
Initially, the new debug flavor will only apply to centos9 builds.
If it proves valuable, we can expand support to other distros.
Note: The current way to schedule debug builds is by using a *-debug branch name.
Having a dedicated flavor seems more straightforward.
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
|
will take a look later this week. |
|
Marking as dnm for now, to get the crimson-rados suite ready for the changes here prior to this merged |
|
changeset:
Next steps (ceph/ceph#66648)
|
With ceph/ceph-build#2497 merged we no loger build Tentacle+Crimson regularly. As Crimson no longer backport changes into Tentacle, there's no reason to keep testing it. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Use the new Debug flavor introduced in ceph/ceph-build#2497. This should provide more nightly test coverage. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Prior to ceph/ceph-build#2497, Crimson was tested using the crimson-debug flavor. To preserve the same testing strategy, use the "debug" flavor for crimson-rados testing runs. Note: `--flavor default` should override this setting to allow testing with non-debug flavors. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
|
This PR is ready to be merged afaict. There's no real way to test the changes here I think so we can fix issues once this is merged. |
ceph-perf-pull-requests/config/definitions/ceph-perf-pull-requests.yml
Outdated
Show resolved
Hide resolved
ceph-perf-pull-requests/config/definitions/ceph-perf-pull-requests.yml
Outdated
Show resolved
Hide resolved
With ceph/ceph#66229 merged, Crimson is now included (though not used) by default in our RPM builds. This means the existing default flavor can also be used for Crimson testing by selecting Crimson as the default OSD package. Notes: * The previous workaround related to DWITH_STATIC_LIBSTDCXX is no longer relevant for Crimson (it was tied to older compiler issues). * The crimson-only branch name selection is also cleaned up, as centos9-only can now be used instead. * This change breaks Crimson Tentacle CI builds: The packaging update that includes Crimson in RPM builds was not backported to Tentacle. Tentacle builds would still require a dedicated flavor that enables WITH_CRIMSON However, since Crimson changes have not been backported to Tentacle (since the first RCA), there is no strong reason to keep building and testing the same Crimson HEAD. So we can use this opprtuinity to stop nightly Crimson/Tentacle builds and tests. See last Crimson tentacle run, (which is not expected to change): https://pulpito.ceph.com/teuthology-2025-11-22_22:56:11-crimson-rados-tentacle-distro-crimson-debug-smithi/ Signed-off-by: Matan Breizman <mbreizma@redhat.com>
c11a8fe to
556b4b5
Compare
See the following comment: ``` Tentacle is the last release that needs dedicated Crimson builds, Later releases are able to use Crimson with the default build. As the "Crimson flavor" is no longer available, we need a *temporary* way to be able build Crimson for tentacle. Note: This could be removed once Crimson we have Umbrella release builds. ``` Signed-off-by: Matan Breizman <mbreizma@redhat.com>
556b4b5 to
b7141eb
Compare
| # Later releases are able to use Crimson with the default build. | ||
| # As the "Crimson flavor" is no longer available, we need a *temporary* way | ||
| # to be able build Crimson for tentacle. | ||
| # Note: This could be removed once Crimson we have Umbrella release builds. |
There was a problem hiding this comment.
We will still need to be able to build Tentacle until upgrade testing from T to V is no longer necessary (probably when V is EOL).
There was a problem hiding this comment.
This section is only true for Crimson. We only build the last stable release (and main) as there's no upgrade testing/support yet. Starting U we will probably start working on upgradability. We still break on-disk data structures from time to time as we are still flexible with this - the plan is to stop with this approach starting U.
This is why we should be able to remove this bit once U is out as Crimson will no longer be supported in T at all. I'll mention this in this comment to avoid confusion.
| # As the "Crimson flavor" is no longer available, we need a *temporary* way | ||
| # to be able build Crimson for tentacle. | ||
| # Note: This could be removed once Crimson we have Umbrella release builds. | ||
| if [[ "$BRANCH" == *-crimson-tentacle ]]; then |
There was a problem hiding this comment.
Let's have -<suffix> only be -debug otherwise you can't have both of these?
Alternatively: why not just turn these switches on unconditionally for tentacle?
There was a problem hiding this comment.
Let's have - only be -debug otherwise you can't have both of these?
I guess the -debug suffix could be removed with the new "debug" flavor introduced. @batrick, WDYT?
I'll try moving this logic to git trailers instead of branch name suffix
Alternatively: why not just turn these switches on unconditionally for tentacle?
Unless I misunderstand the suggestion, this way every Tentacle build will be with Crimson enabled. We only want to be able to enable Crimson with tentacle iff specifically needed for some reason.
There was a problem hiding this comment.
Let's have - only be -debug otherwise you can't have both of these?
I guess the -debug suffix could be removed with the new "debug" flavor introduced. @batrick, WDYT?
Ah, I missed that. That sounds even better!
I'll try moving this logic to git trailers instead of branch name suffix
That would be great. I've tried to make it easier to build branches with these new git trailers here:
Please give it a try! Maybe you can submit a change for the new git trailer?
Alternatively: why not just turn these switches on unconditionally for tentacle?
Unless I misunderstand the suggestion, this way every Tentacle build will be with Crimson enabled. We only want to be able to enable Crimson with tentacle iff specifically needed for some reason.
Got it, nevermind.
There was a problem hiding this comment.
@batrick Are these suggestions 'nice to haves' or must haves? I think CentOS9 builds are blocked by this PR not being merged.
It would go in here. I'll have to take the builders offline to fix. #2512 |
Done |
|
I am merging this as-is. @batrick's requested changes are for a job that largely is no longer used anyway. |
|
Thanks for merging, I'll follow up with the suggestions above. edit: pushed #2515 for the cleanup part. As per the |
the newly introduced "debug" flavor from ceph#2497 can be used insead. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
The newly introduced "debug" flavor from ceph#2497 can be used instead. Add "DWITH_CEPH_DEBUG_MUTEX" to preserve existing *-debug behavior. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
The newly introduced "debug" flavor from ceph#2497 can be used instead. Add "DWITH_CEPH_DEBUG_MUTEX" to preserve existing *-debug behavior. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
ceph#2497 introduced a debug flavor. This seems to cause conflicts with the image being pushed to quay as one of the flavors might override the other. One possible solution to this would be to name the debug images differently. However, since the current behavior might cause unexpected testing results. Skip building containers for debug builds at all. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
ceph#2497 introduced a debug flavor. This seems to cause conflicts with the image being pushed to quay as one of the flavors might override the other. One possible solution to this would be to name the debug images differently. However, since the current behavior might cause unexpected testing results. Skip building containers for debug builds at all. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
ceph#2497 introduced a debug flavor. This seems to cause conflicts with the image being pushed to quay as one of the flavors might override the other. One possible solution to this would be to name the debug images differently. However, since the current behavior might cause unexpected testing results. Skip building containers for debug builds at all. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
We no longer have crimson-flavors see ceph/ceph-build#2497 Signed-off-by: Matan Breizman <mbreizma@redhat.com>
ceph/ceph-build#2497 introduced a debug flavor. This seems to cause conflicts with the image being pushed to quay as one of the flavors might override the other. Tag debug build containers explicitly. Alternative solution would be to skip debug containers all together. However. these might be useful for development purposes. Note, prune-quay might also need to be updated once this is merged. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
ceph/ceph-build#2497 introduced a debug flavor. This seems to cause conflicts with the image being pushed to quay as one of the flavors might override the other. Tag debug build containers explicitly. Alternative solution would be to skip debug containers all together. However. these might be useful for development purposes. Note, prune-quay might also need to be updated once this is merged. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
With ceph/ceph-build#2497 merged we no loger build Tentacle+Crimson regularly. As Crimson no longer backport changes into Tentacle, there's no reason to keep testing it. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Use the new Debug flavor introduced in ceph/ceph-build#2497. This should provide more nightly test coverage. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Prior to ceph/ceph-build#2497, Crimson was tested using the crimson-debug flavor. To preserve the same testing strategy, use the "debug" flavor for crimson-rados testing runs. Note: `--flavor default` should override this setting to allow testing with non-debug flavors. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Prior to ceph/ceph-build#2497, Crimson was tested using the crimson-debug flavor. To preserve the same testing strategy, use the "debug" flavor for crimson-rados testing runs. Note: `--flavor default` should override this setting to allow testing with non-debug flavors. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Prior to ceph/ceph-build#2497, Crimson was tested using the crimson-debug flavor. To preserve the same testing strategy, use the "debug" flavor for crimson-rados testing runs. Note: `--flavor default` should override this setting to allow testing with non-debug flavors. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
With ceph/ceph-build#2497 merged we no loger build Tentacle+Crimson regularly. As Crimson no longer backport changes into Tentacle, there's no reason to keep testing it. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
Use the new Debug flavor introduced in ceph/ceph-build#2497. This should provide more nightly test coverage. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
We no longer have crimson-flavors see ceph/ceph-build#2497 Signed-off-by: Matan Breizman <mbreizma@redhat.com>
ceph/ceph-build#2497 introduced a debug flavor. This seems to cause conflicts with the image being pushed to quay as one of the flavors might override the other. Tag debug build containers explicitly. Alternative solution would be to skip debug containers all together. However. these might be useful for development purposes. Note, prune-quay might also need to be updated once this is merged. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
We no longer have crimson-flavors see ceph/ceph-build#2497 Signed-off-by: Matan Breizman <mbreizma@redhat.com>
ceph/ceph-build#2497 introduced a debug flavor. This seems to cause conflicts with the image being pushed to quay as one of the flavors might override the other. Tag debug build containers explicitly. Alternative solution would be to skip debug containers all together. However. these might be useful for development purposes. Note, prune-quay might also need to be updated once this is merged. Signed-off-by: Matan Breizman <mbreizma@redhat.com>
With ceph/ceph#66229 merged,
Crimson is now included (though not used) by default in our RPM builds.
This means the existing default flavor can also be used for Crimson testing
by selecting Crimson as the default OSD package.
Notes:
The previous workaround related to DWITH_STATIC_LIBSTDCXX is no longer
relevant for Crimson (it was tied to older compiler issues).
The crimson-only branch name selection is also cleaned up,
as centos9-only can now be used instead.
This change breaks Crimson Tentacle CI builds:
The packaging update that includes Crimson in RPM builds was not backported to Tentacle.
Tentacle builds would still require a dedicated flavor that enables WITH_CRIMSON
However, since Crimson changes have not been backported to Tentacle (since the first RCA),
there is no strong reason to keep building and testing the same Crimson HEAD.
So we can use this opprtuinity to stop nightly Crimson/Tentacle builds and tests.
See last Crimson tentacle run, (which is not expected to change):
https://pulpito.ceph.com/teuthology-2025-11-22_22:56:11-crimson-rados-tentacle-distro-crimson-debug-smithi/