New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
registerOutputs(): Don't call canonicalisePathMetaData() twice #4054
Conversation
So we had to When I first rewrote Also, out of curiosity, how did |
The EOF is because the daemon aborts with an assertion failure. |
Ah, I didn't see the |
Ah! I see, the now-deleted comment should've instead read "check if all files were owned by the build user", since it's making them no longer be owned by that user. Thanks! |
@@ -10,13 +10,15 @@ outPath=$(nix-store -rvv "$drvPath") | |||
|
|||
echo "output path is $outPath" | |||
|
|||
(! [ -w $outPath ]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think one needs the (..)
subshell for this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is needed. From the bash manpage under set -e
: "The shell does not exit ... if the command's return value is being inverted with !".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, thanks! In that cases I think I need to fix some tests of mine on branches :)
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
Fixes #4021. It also fixes a bad format string failure when debug output is enabled.
@Ericson2314 The second call to
canonicalisePathMetaData()
should be superfluous now since we're always callingcanonicalisePathMetaData()
in the loop overdrv->outputs
at the start ofregisterOutputs()
. But maybe I'm missing something, please check.