!VRULIdgoKmKPzJZzjj:nixos.org

Nix Hackers

920 Members
For people hacking on the Nix package manager itself193 Servers

Load older messages


SenderMessageTime
13 Nov 2024
@enzime:nixos.dev@enzime:nixos.devwhich redirects to https://hydra.nixos.org/build/278148859/download/1/manual/04:28:33
@enzime:nixos.dev@enzime:nixos.dev
In reply to @jade_:matrix.org
i also did not notice that 2.25 was released, but this also works because of that: https://releases.nixos.org/nix/nix-2.25.0/manual/index.html
I made a GitHub issue requesting GitHub releases are created so users can have an official channel to be notified by https://github.com/NixOS/nix/issues/11872
04:29:19
@mightyiam:matrix.orgShahar "Dawn" Or

Is anyone interested in the core dump for this?

08:25:19
@mightyiam:matrix.orgShahar "Dawn" Or *

Is anyone interested in the core dump for this?

nix-repl> :env
Env level 0
static: step swayMsgPath pactl incVol toggleMuteSources

Env level 1


terminating due to unexpected unrecoverable internal error: Unexpected condition in operator[] at src/libexpr/symbol-table.hh:119
zsh: abort (core dumped)  nix build --debugger
08:25:28
@mightyiam:matrix.orgShahar "Dawn" OrOh, it's v2.24.1008:25:55
@joerg:thalheim.ioMic92Redacted or Malformed Event20:09:43
@joerg:thalheim.ioMic92https://github.com/NixOS/nixpkgs/pull/35574520:09:52
@inayet:matrix.orgInayet joined the room.22:14:05
14 Nov 2024
@sinan:sinanmohd.comsinan changed their profile picture.08:24:18
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8) I’d like to add functionality to nix derivation show so it respects —keep-going. How would I do that?
I found the relevant source file (https://github.com/NixOS/nix/blob/a95f6ea5c6b9a404f3ef1138c8351f7ef6383e6f/src/nix/derivation-show.cc#L42) and started by wrapping things in try-catch blocks, but I don’t understand how to catch the relevant errors — they seem to make the program fail regardless of what I’m catching (EvalError, Error, or even std::exception).
Does EvalState need to be reset or otherwise modified to start doing evaluation again after throwing?
Will post changes in a moment.
16:56:28
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)

For what it's worth, even with the code below I'm not seeing anything being printed out, which I would expect due to the numerous printMsg calls.

void run(ref<Store> store, Installables && installables) override
{
    // TODO(@connorbaker): Unsure of how to catch eval errors so the other installables are still computed.
    const auto drvPaths = Installable::toDerivations(store, installables, true);
    auto jsonRoot = json::object();
    auto hasErrors = false;

    const auto tryAction = [&](const auto & action) {
        try {
            action();
        } catch (EvalError & e) {
            printMsg(lvlError, "settings.keepGoing: %s", settings.keepGoing);
            if (settings.keepGoing) {
                ignoreExceptionExceptInterrupt();
                hasErrors = true;
            } else {
                throw;
            }
        } catch (Error & e) {
            printMsg(lvlError, "settings.keepGoing: %s", settings.keepGoing);
            if (settings.keepGoing) {
                ignoreExceptionExceptInterrupt();
                hasErrors = true;
            } else {
                throw;
            }
        } catch (Interrupted & e) {
            printMsg(lvlError, "settings.keepGoing: %s", settings.keepGoing);
            if (settings.keepGoing) {
                ignoreExceptionExceptInterrupt();
                hasErrors = true;
            } else {
                throw;
            }
        } catch (const std::exception &e) {
            printMsg(lvlError, "settings.keepGoing: %s", settings.keepGoing);
            if (settings.keepGoing) {
                ignoreExceptionExceptInterrupt();
                hasErrors = true;
            } else {
                throw;
            }
        // Please, PLEASE JUST CATCH IT.
        } catch (...) {
            printMsg(lvlError, "settings.keepGoing: %s", settings.keepGoing);
            if (settings.keepGoing) {
                ignoreExceptionExceptInterrupt();
                hasErrors = true;
            } else {
                throw;
            }
        }
    };

    const auto addDrvPathsToJSONRoot = [&](const auto & drvPaths) {
        for (const auto & drvPath : drvPaths) {
            if (!drvPath.isDerivation()) {
                continue;
            }

            jsonRoot[store->printStorePath(drvPath)] =
                store->readDerivation(drvPath).toJSON(*store);
        }
    };

    if (recursive) {
        // In the recursive case, don't add the closure of a drvPath if it fails to evaluate.
        for (const auto & drvPath : drvPaths) {
            tryAction([&] {
                StorePathSet closure;
                store->computeFSClosure(drvPath, closure);
                addDrvPathsToJSONRoot(closure);
            });
        }
    } else {
        tryAction([&] { addDrvPathsToJSONRoot(drvPaths); });
    }

    logger->cout(jsonRoot.dump());

    if (hasErrors) {
        throw Error("some errors were encountered during the evaluation");
    }
}
17:30:17
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)Ugh. Because I'm using a multi-user install, is it the daemon which is throwing the error?17:44:12
@puck:puck.moepuck toDerivations throws the eval exceptions, iirc 17:50:06
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)That was it! Thank you :)18:55:04
@alina:kescher.at@alina:kescher.at left the room.21:09:09
15 Nov 2024
@k0kada:matrix.org@k0kada:matrix.org left the room.12:36:24
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8)

Yesterday I got an error in a Nix build which was using Ninja (nothing new there, bad CMake config). However, I noticed I was able to reliably reproduce a Nix error: https://gist.github.com/ConnorBaker/5cebac5224ab430e67ee25d7a5bd0224

bad JSON log message from builder: [json.exception.parse_error.101] parse error at line 1, column 65539: syntax error while parsing array - invalid literal; last read: <snipped>

Any idea if there's a limit on the length of the output from a build? I believe this was using a remote builder if that's any help.

18:04:25
@artturin:matrix.orgArtturin
In reply to @connorbaker:matrix.org

Yesterday I got an error in a Nix build which was using Ninja (nothing new there, bad CMake config). However, I noticed I was able to reliably reproduce a Nix error: https://gist.github.com/ConnorBaker/5cebac5224ab430e67ee25d7a5bd0224

bad JSON log message from builder: [json.exception.parse_error.101] parse error at line 1, column 65539: syntax error while parsing array - invalid literal; last read: <snipped>

Any idea if there's a limit on the length of the output from a build? I believe this was using a remote builder if that's any help.

I wonder what --log-format internal-json will show?
18:41:36
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8) Running it again with that flag. For what it's worth, when I built locally and used sudo (so no daemon) I didn't get the error. 19:24:41
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8) *

Running it again with that flag. For what it's worth, when I built locally and used sudo (so no daemon) I didn't get the error -- which is to say I saw

cuda12.6-onnxruntime> /nix/store/va7kw1i822h95im4jacci19v0cqajfyf-binutils-2.43.1/bin/ld: cannot find -lcudnn_frontend: No such file or directory
cuda12.6-onnxruntime> collect2: error: ld returned 1 exit status
cuda12.6-onnxruntime> ninja: build stopped: subcommand failed.
19:25:05
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8) Here's the end of the log with --log-format internal-json https://gist.github.com/ConnorBaker/6af002385527635deefdce7982d2acb1 19:31:08
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8) *

Running it again with that flag. For what it's worth, when I built locally and used sudo (so no daemon) I didn't get the error -- which is to say I saw

cuda12.6-onnxruntime> /nix/store/va7kw1i822h95im4jacci19v0cqajfyf-binutils-2.43.1/bin/ld: cannot find -lcudnn_frontend: No such file or directory
cuda12.6-onnxruntime> collect2: error: ld returned 1 exit status
cuda12.6-onnxruntime> ninja: build stopped: subcommand failed.
error: builder for '/nix/store/w9nxvfann68v2am1kym3hkyxmc4a8p1f-cuda12.6-onnxruntime-1.20.0-unstable-2024-11-14.drv' failed with exit code 1
19:31:58
@connorbaker:matrix.orgconnor (burnt/out) (UTC-8) Weird that in the internal-json log output I can see \nFor full logs, run '\u001b[1mnix log /nix/store/w9nxvfann68v2am1kym3hkyxmc4a8p1f-cuda12.6-onnxruntime-1.20.0-unstable-2024-11-14.drv, but that in the log immediately above that output never shows up. 19:32:36
16 Nov 2024
@xokdvium:matrix.orgSergei Zimmerman (xokdvium) set a profile picture.10:47:55
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)
In reply to @mightyiam:matrix.org

Is anyone interested in the core dump for this?

nix-repl> :env
Env level 0
static: step swayMsgPath pactl incVol toggleMuteSources

Env level 1


terminating due to unexpected unrecoverable internal error: Unexpected condition in operator[] at src/libexpr/symbol-table.hh:119
zsh: abort (core dumped)  nix build --debugger
It did some light digging in lldb here, but wasn't able to get to the root cause. https://github.com/NixOS/nix/issues/11286#issuecomment-2398006754. It's a use-after-free
10:53:48
@catalin:one.ems.hostViorel-Cătălin Răpițeanu changed their display name from @catalin:one.ems.host to Viorel-Cătălin Răpițeanu.18:22:43
18 Nov 2024
@aktaboot:tchncs.deaktaboot changed their profile picture.08:03:09
@joerg:thalheim.ioMic92https://github.com/NixOS/nixpkgs/pull/356983 fix darwin nix static build15:11:38
@flacks:matrix.orgflacks joined the room.16:27:06
@domagojding:matrix.org@domagojding:matrix.org joined the room.19:36:58

Show newer messages


Back to Room ListRoom Version: 6