| 2 Aug 2025 |
emily | we should simply list the retained build directory in the "For full logs" portion of the message | 15:52:00 |
raitobezarius | what happened to my nix | 15:52:02 |
raitobezarius | In reply to @emilazy:matrix.org we should simply list the retained build directory in the "For full logs" portion of the message yeah you're right | 15:52:14 |
raitobezarius | i think this is a much better idea | 15:52:17 |
emily | (I didn't notice the note: for a long while previously before trying to test this because it doesn't even have any colour or anything) | 15:52:40 |
emily | btw it would also be really nice if the log command was on its own line (and so the build directory too I guess), so you could more easily select the whole line and paste it | 15:53:37 |
emily | I spend too much of my life dragging the mouse over only the right portion of the message | 15:53:57 |
emily | something like
For full logs, run:
nix log /nix/store/r0729886rq9nvzsngj2dnwwdl5q5dcq0-test.drv
The build directory has been kept in:
/nix/var/nix/b/3qxda0xkh4wllkxh182kvrza5n
| 15:55:15 |
emily | (or maybe even "To inspect the build directory: … cd /nix/var/nix/b/…") | 15:55:31 |
raitobezarius | do you mind me pushing fixes to your chain? | 15:55:42 |
raitobezarius | the compile stuff i mean | 15:56:09 |
emily | IIRC I have unpushed WIP amendments already, so workflow-wise it's probably easier for me if you just leave suggestions (but if you want to get the CI results feel free). the +2s would need repeating after I push out my own fixes anyway I think | 15:57:24 |
raitobezarius | don't worry | 15:57:35 |
raitobezarius | this was just in case this would do you a favor | 15:57:40 |
emily | there was some integration test issue with temporary stuff in a build dir and I need to check whether it's a test problem or a code problem | 15:58:20 |
raitobezarius | (+2 will repeat but much easier to review the diff between patchset N -1 and patchset N) | 15:58:27 |
emily | I'm currently in the middle of testing Rust stuff re: reproducibility | 15:58:32 |
raitobezarius | will let the chef cook | 15:58:44 |
raitobezarius | maybe i will tack the error message UX improvements | 15:58:52 |
raitobezarius | or would you prefer to take care of it yourself? | 15:58:58 |
raitobezarius | fwiw
45/151 lix:installcheck / functional-check FAIL 0.53s exit status 2
56/151 lix:installcheck / functional-build-remote-input-addressed FAIL 0.69s exit status 1
68/151 lix:installcheck / functional-build-remote-content-addressed-fixed FAIL 0.79s exit status 1
133/151 lix:installcheck / functional-build FAIL 1.30s exit status 1
| 16:00:28 |
raitobezarius | on my side | 16:00:29 |
emily | for --keep-failed? feel free, that could even land separately I think | 16:00:59 |
emily | since the code paths should not interfere | 16:01:06 |
raitobezarius | for reference for those who are interested in testing the HEAD:
diff --git c/lix/libstore/build/local-derivation-goal.cc i/lix/libstore/build/local-derivation-goal.cc
index 68442d839..bd5cf4147 100644
--- c/lix/libstore/build/local-derivation-goal.cc
+++ i/lix/libstore/build/local-derivation-goal.cc
@@ -457,12 +457,13 @@ try {
"Failed to use the system-wide build directory '%s', falling back to a temporary "
"directory inside '%s'",
globalBuildDir,
- worker.buildDir
+ *worker.buildDir
);
+ }
}
/* Create a temporary directory where the build will take
place. */
- tmpDirRoot = createTempSubdir(buildDir, std::nullopt, 0700);
+ tmpDirRoot = createTempSubdir(*worker.buildDir, std::nullopt, 0700);
/* The TOCTOU between the previous mkdir call and this open call is unavoidable due to
* POSIX semantics.*/
tmpDirRootFd = AutoCloseFD{open(tmpDirRoot.c_str(), O_RDONLY | O_NOFOLLOW | O_DIRECTORY)};
diff --git c/lix/libutil/file-system.cc i/lix/libutil/file-system.cc
index f85202956..750d64cb4 100644
--- c/lix/libutil/file-system.cc
+++ i/lix/libutil/file-system.cc
@@ -677,7 +677,7 @@ Path makeTempPath(const Path & root, const std::optional<Path> & prefix)
const uint64_t entropy[2] = {uniform_dist(generator), uniform_dist(generator)};
const std::string unique = base32Encode(std::string_view(
reinterpret_cast<const char *>(entropy),
- sizeof(entropy),
+ sizeof(entropy)
));
if (prefix) {
return fmt("%s%s-%s", root, *prefix, unique);
should be sufficient on the top of the chain | 16:01:46 |
emily | (last hunk is a casualty of last-minute manual reformatting…) | 16:06:23 |
emily | (well, that and C++ being dumb) | 16:06:27 |
raitobezarius | don't worry | 16:06:40 |
raitobezarius | In reply to @emilazy:matrix.org
something like
For full logs, run:
nix log /nix/store/r0729886rq9nvzsngj2dnwwdl5q5dcq0-test.drv
The build directory has been kept in:
/nix/var/nix/b/3qxda0xkh4wllkxh182kvrza5n
i cooked | 16:27:02 |
raitobezarius | i should think how i could convey some nice note for remote builder usecases | 16:27:23 |