Open suimong opened 7 months ago
We're seeing that when trying to update to latest Nixpkgs as well: https://github.com/tweag/nickel/pull/1733. We've had that before and I believe it's related to Topiary, which pulls a bash grammar in. However it should work with the current lockfile, as this is what we use on the CI. Did you update the lockfile, by any chance?
I tried the stock lockfile AND an updated lockfile but the issue is the same. I just tried cloning fresh from tweag/nickel and nix develop
, same issue.
Ah. Thanks for the report. Looking into this with Topiary people. In the meantime, pinning the Nixpkgs input to latest stable instead of unstable might be worth trying (but also might not work, I haven't tried)
It's very weird, I tried with the 1.5.0-release branch, but still got the same issue...
Sorry to come back to this only now, but nix develop
seems to be fixed on latest master. I suspect this was due to a Topiary issue. Feel free to reopen if it's not fixed for you.
@yannham Unfortunately I still saw the same issue with the latest master. This time I even tried with a fresh install of Ubuntu 24.04 and a fresh install of nix (along with my main NixOS workstation). Here is the stack trace (almost the same as before):
> nix develop --show-trace
error: Server does not allow request for unadvertised object a99d905216cc0aac5de0c3050f4afc54e21c6bc5
warning: could not update mtime for file '/home/yjx/.cache/nix/gitv3/1ir2mbkkzsy6xdrkx24b85ljiv4np328w9g1lx577l25jwi0g2in/refs/heads/master': No such file or directory
error:
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:9:12:
8|
9| strict = derivationStrict drvAttrs;
| ^
10|
… while evaluating derivation 'nix-shell'
whose name attribute is located at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/pkgs/stdenv/generic/make-derivation.nix:331:7
… while evaluating attribute 'buildInputs' of derivation 'nix-shell'
at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/pkgs/stdenv/generic/make-derivation.nix:378:7:
377| depsHostHost = elemAt (elemAt dependencies 1) 0;
378| buildInputs = elemAt (elemAt dependencies 1) 1;
| ^
379| depsTargetTarget = elemAt (elemAt dependencies 2) 0;
… while calling the 'getAttr' builtin
at <nix/derivation-internal.nix>:19:19:
18| value = commonAttrs // {
19| outPath = builtins.getAttr outputName strict;
| ^
20| drvPath = strict.drvPath;
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:9:12:
8|
9| strict = derivationStrict drvAttrs;
| ^
10|
… while evaluating derivation 'topiary-0.4.1'
whose name attribute is located at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/pkgs/stdenv/generic/make-derivation.nix:331:7
… while evaluating attribute 'cargoArtifacts' of derivation 'topiary-0.4.1'
at /nix/store/s1cnnplqrk8w595dp9fb5cv84xj61lgx-source/lib/mkCargoDerivation.nix:59:11:
58| } // {
59| inherit cargoArtifacts;
| ^
60|
… while calling the 'getAttr' builtin
at <nix/derivation-internal.nix>:19:19:
18| value = commonAttrs // {
19| outPath = builtins.getAttr outputName strict;
| ^
20| drvPath = strict.drvPath;
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:9:12:
8|
9| strict = derivationStrict drvAttrs;
| ^
10|
… while evaluating derivation 'topiary-deps-0.4.1'
whose name attribute is located at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/pkgs/stdenv/generic/make-derivation.nix:331:7
… while evaluating attribute 'cargoVendorDir' of derivation 'topiary-deps-0.4.1'
at /nix/store/s1cnnplqrk8w595dp9fb5cv84xj61lgx-source/lib/mkCargoDerivation.nix:69:3:
68| # access. Directory structure should basically follow the output of `cargo vendor`.
69| cargoVendorDir = args.cargoVendorDir or (vendorCargoDeps args);
| ^
70|
… while calling the 'getAttr' builtin
at <nix/derivation-internal.nix>:19:19:
18| value = commonAttrs // {
19| outPath = builtins.getAttr outputName strict;
| ^
20| drvPath = strict.drvPath;
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:9:12:
8|
9| strict = derivationStrict drvAttrs;
| ^
10|
… while evaluating derivation 'vendor-cargo-deps'
whose name attribute is located at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/pkgs/stdenv/generic/make-derivation.nix:331:7
… while evaluating attribute 'buildCommand' of derivation 'vendor-cargo-deps'
at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/pkgs/build-support/trivial-builders/default.nix:68:17:
67| enableParallelBuilding = true;
68| inherit buildCommand name;
| ^
69| passAsFile = [ "buildCommand" ]
… from call site
at /nix/store/s1cnnplqrk8w595dp9fb5cv84xj61lgx-source/lib/vendorMultipleCargoDeps.nix:83:5:
82| ${linkSources vendoredRegistries.sources}
83| ${linkSources vendoredGit.sources}
| ^
84| ''
… while calling 'linkSources'
at /nix/store/s1cnnplqrk8w595dp9fb5cv84xj61lgx-source/lib/vendorMultipleCargoDeps.nix:69:17:
68|
69| linkSources = sources: concatMapStrings
| ^
70| (name: ''
… from call site
at /nix/store/s1cnnplqrk8w595dp9fb5cv84xj61lgx-source/lib/vendorMultipleCargoDeps.nix:69:26:
68|
69| linkSources = sources: concatMapStrings
| ^
70| (name: ''
… while calling 'concatMapStrings'
at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/lib/strings.nix:60:25:
59| */
60| concatMapStrings = f: list: concatStrings (map f list);
| ^
61|
… while calling the 'concatStringsSep' builtin
at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/lib/strings.nix:60:31:
59| */
60| concatMapStrings = f: list: concatStrings (map f list);
| ^
61|
… while calling anonymous lambda
at /nix/store/s1cnnplqrk8w595dp9fb5cv84xj61lgx-source/lib/vendorMultipleCargoDeps.nix:70:6:
69| linkSources = sources: concatMapStrings
70| (name: ''
| ^
71| ln -s ${escapeShellArg sources.${name}} $out/${escapeShellArg name}
… from call site
at /nix/store/s1cnnplqrk8w595dp9fb5cv84xj61lgx-source/lib/vendorMultipleCargoDeps.nix:71:15:
70| (name: ''
71| ln -s ${escapeShellArg sources.${name}} $out/${escapeShellArg name}
| ^
72| '')
… while calling 'escapeShellArg'
at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/lib/strings.nix:454:20:
453| */
454| escapeShellArg = arg: "'${replaceStrings ["'"] ["'\\''"] (toString arg)}'";
| ^
455|
… while calling the 'replaceStrings' builtin
at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/lib/strings.nix:454:29:
453| */
454| escapeShellArg = arg: "'${replaceStrings ["'"] ["'\\''"] (toString arg)}'";
| ^
455|
… while evaluating the third argument passed to builtins.replaceStrings
… while calling the 'toString' builtin
at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/lib/strings.nix:454:61:
453| */
454| escapeShellArg = arg: "'${replaceStrings ["'"] ["'\\''"] (toString arg)}'";
| ^
455|
… while calling the 'getAttr' builtin
at <nix/derivation-internal.nix>:19:19:
18| value = commonAttrs // {
19| outPath = builtins.getAttr outputName strict;
| ^
20| drvPath = strict.drvPath;
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:9:12:
8|
9| strict = derivationStrict drvAttrs;
| ^
10|
… while evaluating derivation 'linkLockedDeps'
whose name attribute is located at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/pkgs/stdenv/generic/make-derivation.nix:331:7
… while evaluating attribute 'buildCommand' of derivation 'linkLockedDeps'
at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/pkgs/build-support/trivial-builders/default.nix:68:17:
67| enableParallelBuilding = true;
68| inherit buildCommand name;
| ^
69| passAsFile = [ "buildCommand" ]
… while calling the 'concatStringsSep' builtin
at /nix/store/s1cnnplqrk8w595dp9fb5cv84xj61lgx-source/lib/vendorGitDeps.nix:110:24:
109| # https://github.com/ipetkov/crane/issues/60
110| linkPsInLock = concatStringsSep "\n" (map
| ^
111| (p:
… while calling anonymous lambda
at /nix/store/s1cnnplqrk8w595dp9fb5cv84xj61lgx-source/lib/vendorGitDeps.nix:111:12:
110| linkPsInLock = concatStringsSep "\n" (map
111| (p:
| ^
112| let
… while calling the 'getAttr' builtin
at <nix/derivation-internal.nix>:19:19:
18| value = commonAttrs // {
19| outPath = builtins.getAttr outputName strict;
| ^
20| drvPath = strict.drvPath;
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:9:12:
8|
9| strict = derivationStrict drvAttrs;
| ^
10|
… while evaluating derivation 'cargo-git'
whose name attribute is located at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/pkgs/stdenv/generic/make-derivation.nix:331:7
… while evaluating attribute 'buildCommand' of derivation 'cargo-git'
at /nix/store/3dr5pyja36lvvrszhzffww1jwyrx6i09-source/pkgs/build-support/trivial-builders/default.nix:68:17:
67| enableParallelBuilding = true;
68| inherit buildCommand name;
| ^
69| passAsFile = [ "buildCommand" ]
… while calling the 'fetchGit' builtin
at /nix/store/s1cnnplqrk8w595dp9fb5cv84xj61lgx-source/lib/downloadCargoPackageFromGit.nix:24:7:
23| if sha256 == null then
24| builtins.fetchGit
| ^
25| (maybeRef // {
… while fetching the input 'git+https://github.com/tree-sitter/tree-sitter-bash?rev=1b0321ee85701d5036c334a6f04761cdc672e64c&submodules=1'
… while fetching the input 'git+https://git.savannah.gnu.org/git/bash.git?rev=a99d905216cc0aac5de0c3050f4afc54e21c6bc5'
error: Cannot find Git revision 'a99d905216cc0aac5de0c3050f4afc54e21c6bc5' in ref 'refs/heads/master' of repository 'https://git.savannah.gnu.org/git/bash.git'! Please make sure that the rev exists on the ref you've specified or add allRefs = true; to fetchGit.
I saw this error on the CI very recently, but it just went away. I unfortunately can't reproduce on my end on a Debian with Nix installed, using nix version 2.18.2. Re-opening, still. Maybe the way forward is to package Nickel queries for Topiary independently, as we don't really care about Bash formatting, which is the reason why we pull this flaky dep in the first place.
I saw this error on the CI very recently, but it just went away. I unfortunately can't reproduce on my end on a Debian with Nix installed, using nix version 2.18.2. Re-opening, still. Maybe the way forward is to package Nickel queries for Topiary independently, as we don't really care about Bash formatting, which is the reason why we pull this flaky dep in the first place.
Ah, I found the culprit: nix version 2.18.2 can indeed run nix develop
without error, but errors for newer nix versions e.g. 2.20.2.
That is...interesting :sweat_smile: but good catch, we know at least where too look at.
Describe the bug
On the latest master,
nix develop
fails with the following error:I tried on NixOS as well as Ubuntu with nix installed, the errors are the same.
Here is the full trace:
To Reproduce
Expected behavior Enter the development shell.