Conversation
Also patch s3select for arrow-cpp 20. See: NixOS#426609 Also: * Build with current `fmt` Split (from the original larger contribution NixOS#443671 ) done by: Niklas Hambüchen <[email protected]>
| # Version pinned by Ceph `src/rocksdb` submodule, last update from: | ||
| # https://github.com/ceph/ceph/tree/v19.2.3/src | ||
| rev = "9fa4990159853479a222244574ca41202e4c95c1"; | ||
| sha256 = "sha256-g0CCiWHG/jjn/fumHGXp88PjOGuRjrKC3ETCy6ffWvQ="; |
There was a problem hiding this comment.
Hmm I'm getting a mismatch on this hash when building:
specified: sha256-g0CCiWHG/jjn/fumHGXp88PjOGuRjrKC3ETCy6ffWvQ=
got: sha256-JJXtN8mk8fRsGzyimw4e7tN2/c1RJ4Ei6YioVIMhvl0=
There was a problem hiding this comment.
Hm, very weird. I can repro what you say. I'll push a fix but am not sure how it built yesterday given this.
benaryorg
left a comment
There was a problem hiding this comment.
Just a cursory glance from my side, I'll take a closer look soon.
|
|
||
| # Remove once Ceph supports arrow-cpp >= 20, see: | ||
| # * https://tracker.ceph.com/issues/71269 | ||
| # * https://github.com/NixOS/nixpkgs/issues/406306 | ||
| ceph-arrow-cpp ? callPackage ./arrow-cpp-19.nix { }, |
There was a problem hiding this comment.
Is there a stable link we can provide here to check for current compatibility, similar to the comment we have for Python?
There was a problem hiding this comment.
| src = fetchurl { | ||
| url = "https://download.ceph.com/tarballs/ceph-${version}.tar.gz"; | ||
| hash = "sha256-zlgp28C81SZbaFJ4yvQk4ZgYz4K/aZqtcISTO8LscSU="; | ||
| }; | ||
|
|
There was a problem hiding this comment.
I've run into issues with that pattern before (e.g. the authentik package); since src is used not just in ceph but also ceph-common below, overriding src using overrideAttrs will cause issues since ceph will be built with the new src, but ceph-common won't.
Is there anything we can do to improve this, like making ceph-common somehow reference the finalAttrs.src of ceph (like by making this a function taking a src and version argument and calling the function using the finalAttr values from within ceph)?
I realize this isn't being introduced by this PR (the code just moves up a few lines), so this is kind of out-of-scope for this PR, but I'd like to throw it in here so it's at least somewhere.
There was a problem hiding this comment.
That is a very good point, I'd definitely want my overrideAttrs of Ceph source to also override its Python code!
Could we put the src of the C++ package into the passthru and get it that way for the Python? Edit: Hmm no, the C++ package references the ceph-pyhton-env.
There was a problem hiding this comment.
Is there anything we can do to improve this, like making ceph-common somehow reference the finalAttrs.src of ceph (like by making this a function taking a src and version argument and calling the function using the finalAttr values from within ceph)?
👍🏻 I've wanted the same!
There was a problem hiding this comment.
Could we put the
srcof the C++ package into thepassthruand get it that way for the Python?
Most ways I can think of will just run into infinite recursion.
Is it possible to just add ceph-common and ceph-python-env as attrs of the derivation and change all their references to finalAttrs.{ceph-common,ceph-python-env}?
That would also allow overriding either of them using something like this:
ceph.overrideAttrs ({ ceph-python-env, ... }:
{
ceph-python-env = ceph-python-env.overrideAttrs
{
# I dunno, add some Python packages or something
};
})There was a problem hiding this comment.
Completely forgot, of course patches should be inherited too in exactly the same way, otherwise we won't be able to apply patches to the Python parts via overrideAttrs for testing either.
|
eclairevoyant
left a comment
There was a problem hiding this comment.
I think this becomes imperative again since ceph is broken on master (this time due to some python deps).
| # Ceph does not support the following yet: | ||
| # * `bcrypt` > 4.0 | ||
| # * `cryptography` > 40 | ||
| # See: | ||
| # * https://github.com/NixOS/nixpkgs/pull/281858#issuecomment-1899358602 | ||
| # * Upstream issue: https://tracker.ceph.com/issues/63529 | ||
| # > Python Sub-Interpreter Model Used by ceph-mgr Incompatible With Python Modules Based on PyO3 | ||
| # * Moved to issue: https://tracker.ceph.com/issues/64213 | ||
| # > MGR modules incompatible with later PyO3 versions - PyO3 modules may only be initialized once per interpreter process |
There was a problem hiding this comment.
Unfortunately still seeing the bcrypt issue via ceph-mgr:
ImportError: PyO3 modules do not yet support subinterpreters, see https://github.com/PyO3/pyo3/issues/576
Encountered this when trying to run the ceph-single-node NixOS test via ceph.passthru.tests.ceph-single-node. This test times out due to ceph -s printing health: HEALTH_WARN instead of health: HEALTH_OK (13 mgr modules have failed dependencies).
Full logs: ceph-single-node.log
There was a problem hiding this comment.
I can reproduce the same failure.
|
Side note: I have a WIP branch https://github.com/nh2/nixpkgs/pull/new/ceph-20 (currently at commit 5ba8628) I won't have time to work on this PR #455889 though unitl beginning of December, so in case anybody wants to already address or test easy-to-address feedback from above, feel free to add some commits! That builds
Edit: The above must be wrong, running it again on these commits, I do get the |
|
This very well might be a PEBKAC, but activating ceph OSDs[2] failed for me[3] when trying to use this PR as an overlay[1]. I suspect this might be caused by python importlib shenanigans, as the code surrounding the failing part is: [1]: nixpkgsCeph = pkgs.fetchFromGitHub {
owner = "nixos";
repo = "nixpkgs";
rev = "e73414dce1b45db6119eb6c25ab4760734f6e0fe";
sha256 = "sha256-38D40MYOuso2QuGePuaQrI7UzAf9vttMEnqA0fiCSqc=";
};
[ ... ]
overlays = [
(self: super: {
inherit (import nixpkgsCeph { system = "x86_64-linux"; }) ceph;
})
];[2]: [3]: edit: (pkgs.fetchpatch {
url = "https://github.com/ceph/ceph/commit/8c78a22d2cf69892570f635735d9735169b64a75.patch";
hash = "sha256-QnlSGJw0lRdXoLaf58/yXr3ArAut40dSnkA3TFeFJNE=";
})but after that we hit problems with |
|
I've gone ahead and marked @dotlambda's review comments as resolved because I've implemented them here after rebasing against master: numinit@f6d3953 I'll hold off from force-pushing this branch up to @nh2's tree until I can get the tests passing though.
My ceph-python3.12 branch is currently here (and this is reproducible by running |
|
Which means we're back here: pyca/cryptography#12080 (comment)
Giving this a shot now. |
|
Got patches applying cleanly on numinit@4d74cd2; still debugging a Edit: Still some errors that cause tests to time out, but it got further with these:
Wondering if we should use aur-ceph patches or proxmox but proxmox also has a lot of them. |
|
I guess one thing I could try is applying most of the 55 entire patches that Proxmox does. It's for nearly the same version. My guess is we'll still need a few of our own, and leaving out the Debian-specific ones, but they seemed to address some of the cases that the Arch patch did not. |
@numinit Does Proxmox track these patches somewhere instead of just collecting them as
Note though that I have Ceph 20 already in the pipeline (see #455889 (comment)) |
|
@nh2 The patch files look like this: (Regrettably, the commit hash is zeroed... but my guess is it could be reverse engineered back into the original hashes with enough git digging). BTW: numinit@0d2b82e Have to clean up the commit series, but: /nix/store/sy25b2dc6cv5lgr2q0ab0ns3y1vk2nyn-vm-test-run-basic-multi-node-ceph-cluster 😄 |
Yeah. I figure this work is just going to be for 25.11 since going to 20 would be breaking. |
So, guess it's not imperative anymore and we can go to 20? Edit: the branch with passing tests using Proxmox patches, in case it's useful: https://github.com/numinit/nixpkgs/tree/ceph-python3.12-proxmox |
Closes #443671.
Extracted from PR
as mentioned in #443671 (comment)
Things done
passthru.tests.nixpkgs-reviewon this PR. See nixpkgs-review usage../result/bin/.Add a 👍 reaction to pull requests you find important.