Skip to content

Comments

Fix two build failures with WITH_BLUESTORE=no#60547

Merged
aclamk merged 2 commits intoceph:mainfrom
MaxKellermann:without_bluestore
Feb 5, 2025
Merged

Fix two build failures with WITH_BLUESTORE=no#60547
aclamk merged 2 commits intoceph:mainfrom
MaxKellermann:without_bluestore

Conversation

@MaxKellermann
Copy link
Member

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • New feature (ticket optional)
    • Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • No impact that needs to be tracked
  • Documentation (select at least one)
    • Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)

Fixes build failure with `WITH_BLUESTORE=no` because that unit test
requires Bluestore code.

Signed-off-by: Max Kellermann <[email protected]>
Cover all Bluestore specific code.  Fixes build failures with
`WITH_BLUESTORE=no`.

Signed-off-by: Max Kellermann <[email protected]>
@MaxKellermann MaxKellermann marked this pull request as ready for review October 29, 2024 21:14
@MaxKellermann
Copy link
Member Author

CI failures look bogus.

@aclamk
Copy link
Contributor

aclamk commented Oct 30, 2024

@MaxKellermann
I am curious - can you share why WITH_BLUESTORE is not set?
I was thinking along the direction of removing it and making bluestore compile always.

@MaxKellermann
Copy link
Member Author

I tried to build Ceph with the lightest dependencies possible; I don't even know what Bluestore is, but I guess it's not relevant at all for me because my work is only about the MDS.

But generally I wouldn't want you to make any more dependencies mandatory. Building Ceph is very difficult already, and adding more mandatory dependencies would make it more difficult. Why would I want to have all those dependencies when all I want to work on is the MDS? I like software that is (compile-time) configurable and making that possible is easy enough (even though Ceph is sometimes more clumsy than necessary about it - it could have been easier in the code). I think allowing a bare-minimal build is a good idea, and my idea was actually to make more dependencies optional.

There could be more CI tests verifying all the build combinations, but unfortunately Ceph's CI test fail for bogus reasons more often than not, and then the CI takes several hours to finish. Partly because the header dependency bloat is horrible (see #60490), partly because Boost::async is used (which adds dependency bloat that cannot be undone without removing asio completely, which I would support and even help implement), and partly because Ceph's CI doesn't take advantage of ccache.

@aclamk
Copy link
Contributor

aclamk commented Nov 19, 2024

@MaxKellermann
I get your point. I share your opinon on expanding external dependencies.
BlueStore is a mandatory component of ceph. It is used in OSD to store the data.
Currently, no classic deployment can work without it.

But I get your point on compilation of independent modules.

@aclamk
Copy link
Contributor

aclamk commented Nov 19, 2024

@MaxKellermann
I think the best dependency chain with regard to WITH_BLUESTORE should be like:
If not compiling OSD, skip "test/objectstore" and all its content.

WITH_BLUESTORE should not be referenced anywhere else.

@MaxKellermann
Copy link
Member Author

@aclamk, how to proceed? This PR fixes a build failure, but does not refactor existing code. Your last comment 3 weeks ago might be an idea to refactor the code, but that's not my goal - I think merging a minimal build failure fix now is the right way to go, and whoever is interested in refactoring may do this at any time.

@MaxKellermann
Copy link
Member Author

Hello, anybody?

@MaxKellermann
Copy link
Member Author

Hello, @aclamk? Anybody else?

@ceph-jenkins
Copy link
Collaborator

Can one of the admins verify this patch?

@aclamk
Copy link
Contributor

aclamk commented Jan 17, 2025

@MaxKellermann I will take this path in next teuthology run; I expect no problems. Will update you.

@aclamk aclamk self-requested a review January 17, 2025 12:26
Copy link
Contributor

@aclamk aclamk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

@aclamk
Copy link
Contributor

aclamk commented Jan 17, 2025

jenkins test api

@aclamk
Copy link
Contributor

aclamk commented Jan 17, 2025

jenkins test make check arm64

@aclamk
Copy link
Contributor

aclamk commented Jan 17, 2025

jenkins test docs

@aclamk
Copy link
Contributor

aclamk commented Jan 23, 2025

jenkins test make check arm64

@aclamk aclamk added the aclamk-testing-nauvoo bluestore testing label Jan 29, 2025
@aclamk
Copy link
Contributor

aclamk commented Feb 5, 2025

@aclamk aclamk merged commit 994a988 into ceph:main Feb 5, 2025
3 checks passed
@MaxKellermann MaxKellermann mentioned this pull request Feb 7, 2025
14 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants