--keep-failed across remote builders does not work #933
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
awaiting
author
awaiting
contributors
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
Feature/S3
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#933
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
--keep-failedacross a remote builder historically kept the failed directory on the remote builder.This is not the case anymore.
Steps To Reproduce
Expected behavior
keep-failedshould be transfered along.nix --versionoutputLix 2.94.0
57b1c289b5.Additional context
I may fix it once I have some time.
ssh-ngdoesn't do this fully on purpose, though with a todo to fix it at some point:kj::Promise<Result<void>> setOptions(RemoteStore::Connection & conn) override{/* TODO Add a way to explicitly ask for some options to beforwarded. One option: A way to query the daemon for itssettings, and then a series of params to SSHStore likeforward-cores or forward-overridden-cores that onlyoverride the requested settings.*/return {result::success()};};on
sshcannot do this when building through a daemon, only through a local store:auto getBuildSettings = [&]() {// FIXME: changing options here doesn't work if we're// building through the daemon.verbosity = lvlError;settings.keepLog.override(false);settings.useSubstitutes.override(false);settings.maxSilentTime.override(readInt(in));settings.buildTimeout.override(readInt(in));if (GET_PROTOCOL_MINOR(clientVersion) >= 2)settings.maxLogSize.override(readNum<unsigned long>(in));if (GET_PROTOCOL_MINOR(clientVersion) >= 3) {auto nrRepeats = readInt(in);if (nrRepeats != 0) {throw Error("client requested repeating builds, but this is not currently implemented");}// Ignore 'enforceDeterminism'. It used to be true by// default, but also only never had any effect when// `nrRepeats == 0`. We have already asserted that// `nrRepeats` in fact is 0, so we can safely ignore this// without doing something other than what the client// asked for.readInt(in);settings.runDiffHook.override(true);}if (GET_PROTOCOL_MINOR(clientVersion) >= 7) {settings.keepFailed.override((bool) readInt(in));}};this is in theory fixable by sending an options packet before every build, but then the daemon would just reject the build anyway because some of the setting nix-store overrides unconditionally are trusted settings.
we're going to file this under WONTFIX before rpc lands