checkPhase
fails when building Lix with dockerized Nix #611
Labels
No labels
Affects/CppNix
Affects/Nightly
Affects/Only nightly
Affects/Stable
Area/build-packaging
Area/cli
Area/evaluator
Area/fetching
Area/flakes
Area/language
Area/lix ci
Area/nix-eval-jobs
Area/profiles
Area/protocol
Area/releng
Area/remote-builds
Area/repl
Area/repl/debugger
Area/store
bug
Context
contributors
Context
drive-by
Context
maintainers
Context
RFD
crash 💥
Cross Compilation
devx
docs
Downstream Dependents
E/easy
E/hard
E/help wanted
E/reproducible
E/requires rearchitecture
imported
Language/Bash
Language/C++
Language/NixLang
Language/Python
Language/Rust
Needs Langver
OS/Linux
OS/macOS
performance
regression
release-blocker
stability
Status
blocked
Status
invalid
Status
postponed
Status
wontfix
testing
testing/flakey
Topic/Large Scale Installations
ux
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lix-project/lix#611
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?
Describe the bug
I'm building Lix 2.91.1 with a backported patch from
main
(specificallyd0bcdfa6c4
) and decided to delegate it to CI (Drone at https://tildegit.org), but it fails to run tests incheckPhase
, specifically 4 or the 5FileTransfer
tests:Full logs are available at https://drone.tildegit.org/acidbong/nixos/7/1/2, somewhere after line 16500 (and further builds, where not cancelled), you can also inspect the repo state at the commit that triggered the pipeline.
Steps To Reproduce
No idea, sorry, the internals of the Drone instance are a mystery to me. The only Docker images i've tried are ones built by nix-community,
nixpkgs/nix:latest
andnixpkgs/cachix-flakes:latest
(which is also set up in/.drone.yml
in my repo).Expected behavior
It didn't fail when I built it on my PC.
nix --version
outputnix (Nix) 2.24.10
#452 possibly related
Not sure, they seem to experience problems in
installCheckPhase
, while for mecheckPhase
fails and I don't reachinstallCheckPhase
myself.So this is the code that's breaking:
trigger.create();
sockaddr_in6 addr = {
.sin6_family = AF_INET6,
.sin6_addr = IN6ADDR_LOOPBACK_INIT,
};
socklen_t len = sizeof(addr);
if (::bind(listener.get(), reinterpret_cast<const sockaddr *>(&addr), sizeof(addr)) < 0) {
throw SysError(errno, "bind() failed");
}
if (::getsockname(listener.get(), reinterpret_cast<sockaddr *>(&addr), &len) < 0) {
throw SysError(errno, "getsockname() failed");
}
if (::listen(listener.get(), 1) < 0) {
throw SysError(errno, "listen() failed");
I think that this could only possibly be busted if:
Being unable to listen to a socket on localhost that's being used very reasonably (binding to port 0, selecting any free port) seems like the runtime is simply busted in some manner.
I think we can't fix this as it seems like an environment issue inside seemingly reasonable code, so I'm going to close it. Feel free to update if you find some more details as to what broke it in the end; it would be nice to potentially detect the fault better.