lix main changes break hydra [2025-06-11] #50
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
One of the recent changes in lix main have caused build failures in hydra due to code changes, causing:
I suspect
cc560704de
, which'd mean changing allin
andout
references tosocket
should be fine?The
reset()
call there worries me a bit since maybe Hydra assumes the pipes to be independent, but then again, that would've probably messed with the SSH connection anyway.Hydra has been in sync with Lix main for just about 2 hours ^^
(this is not a complaint, I just find it funny. I'm actually very happy that Lix people are changing a lot of things aggressively to improve code quality)
I've had a look and it's more than just
s/(in|out)/socket/g
since Hydra seems to have what looks almost like a copy of the code prior to the change that introduced the incompatibility.To be honest, it looks like a large chunk of src/hydra-queue-runner/build-remote.cc could be replaced by keeping a reference to a Lix
Machine::Machine
around, and then usingMachine::openStore()
instead of manually calling SSH, but that looks like a rather large change (however one that would get rid of a lot of boilerplate I guess?).Alternatively the code can probably be adjusted in much the same way as the Lix side.
I'll leave this to you people who can actually deal with C++, unlike me ^^
Wait, I'm the impostor here ;)
Anyways, I may take a look at the build failure this weekend.
It is correct that a lot of Hydra code could be replaced by a bunch of Lix internals, the sole reason for the current statei sthat the implementation in the queue-runner is much older.
That being said, I"m a little bit hesitant to do this now: IIRC this was attempted quite recently by the upstream Hydra leading to a bunch of regressions.
Additionally, there's ongoing work on replacing the queue runner altogether: https://discourse.nixos.org/t/transforming-global-software-distribution-with-nixpkgs/64989
My current plan is to wait until a prototype is published to evaluate how good we could integrate this into our codebase (I hope that most of the communication happens via some IPC -- this would also mean less issues with C++ API changes).
If we come to the conclusion that this is a bad idea, I'd follow through witih the plan I made with @raito at ocean sprint, i.e.
Sounds like a solid plan.
Turns out the reason I switched back to
ssh://
fromssh-ng://
is fixed upstream now (seems I lost track of that).I haven't been able to nail down whether the issue was fixed in Lix yet, so if moving to
ssh-ng://
is planned then we should probably check whether this has been resolved on the Lix side too.object oriented languages and template meta programming scary