Skip to content

Upstream tracking#165

Draft
grahamc wants to merge 2817 commits into
2.34-maintenancefrom
main
Draft

Upstream tracking#165
grahamc wants to merge 2817 commits into
2.34-maintenancefrom
main

Conversation

@grahamc
Copy link
Copy Markdown
Member

@grahamc grahamc commented Jul 31, 2025

Motivation

Not intended to be merged directly. This PR is a convenience to show the diff between upstream Nix and Determinate Nix (the main branch).

Continuation of #4.

@grahamc grahamc requested a review from edolstra as a code owner July 31, 2025 17:14
@github-actions github-actions Bot temporarily deployed to production July 31, 2025 17:14 Inactive
@DeterminateSystems DeterminateSystems locked as off-topic and limited conversation to collaborators Jul 31, 2025
@github-actions github-actions Bot temporarily deployed to pull request July 31, 2025 18:20 Inactive
@github-actions github-actions Bot temporarily deployed to production July 31, 2025 18:21 Inactive
@cole-h cole-h marked this pull request as draft August 1, 2025 14:26
@github-actions github-actions Bot temporarily deployed to pull request August 4, 2025 22:15 Inactive
@github-actions github-actions Bot temporarily deployed to commit August 4, 2025 22:15 Inactive
@github-actions github-actions Bot temporarily deployed to production August 4, 2025 22:15 Inactive
@github-actions github-actions Bot temporarily deployed to production August 5, 2025 14:25 Inactive
@github-actions github-actions Bot temporarily deployed to pull request August 5, 2025 14:25 Inactive
@github-actions github-actions Bot temporarily deployed to pull request August 7, 2025 15:58 Inactive
@github-actions github-actions Bot temporarily deployed to production August 7, 2025 15:58 Inactive
@github-actions github-actions Bot temporarily deployed to pull request August 7, 2025 23:01 Inactive
@github-actions github-actions Bot temporarily deployed to production August 7, 2025 23:02 Inactive
@github-actions github-actions Bot temporarily deployed to pull request August 10, 2025 16:36 Inactive
@github-actions github-actions Bot temporarily deployed to production August 10, 2025 16:36 Inactive
@github-actions github-actions Bot temporarily deployed to pull request August 10, 2025 20:06 Inactive
@github-actions github-actions Bot temporarily deployed to production August 10, 2025 20:06 Inactive
@github-actions github-actions Bot temporarily deployed to production August 19, 2025 15:04 Inactive
@github-actions github-actions Bot temporarily deployed to pull request August 19, 2025 15:04 Inactive
@github-actions github-actions Bot temporarily deployed to production August 20, 2025 10:41 Inactive
@github-actions github-actions Bot temporarily deployed to pull request August 20, 2025 10:41 Inactive
@github-actions github-actions Bot temporarily deployed to commit August 20, 2025 10:41 Inactive
@github-actions github-actions Bot temporarily deployed to pull request August 25, 2025 16:07 Inactive
@github-actions github-actions Bot temporarily deployed to production August 25, 2025 16:07 Inactive
@github-actions github-actions Bot temporarily deployed to production August 25, 2025 16:14 Inactive
github-actions Bot and others added 30 commits May 7, 2026 17:10
…998-5408-415d-888c-22b360e92308

Release v3.20.0
Restore resBuildResult fields for failed builds
If the string isn't terminated, parseString() returns a string of size
std::string::npos, which then causes an out-of-bounds read later.

Fixes:

==47978== Invalid read of size 1
==47978==    at 0x4BEF70A: nix::expect(nix::(anonymous namespace)::StringViewStream&, char) (../src/libstore/derivations.cc:232)
==47978==    by 0x4BEE3CA: parseDerivationOutput (../src/libstore/derivations.cc:383)
==47978==    by 0x4BEE3CA: nix::parseDerivation(nix::StoreDirConfig const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, std::basic_string_view<char, std::char_traits<char> >, nix::ExperimentalFeatureSettings const&) (???:492)
==47978==    by 0x3F3803: nix::DerivationTest_UnterminatedString_Test::TestBody() (../src/libstore-tests/derivation/external-formats.cc:27)
==47978==    by 0x52AD3DD: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (in /nix/store/qyg0071v3bf8vgcnccd6zi0gvc5abs3f-gtest-1.17.0/lib/libgtest.so.1.17.0)
==47978==    by 0x5298E3D: testing::Test::Run() (in /nix/store/qyg0071v3bf8vgcnccd6zi0gvc5abs3f-gtest-1.17.0/lib/libgtest.so.1.17.0)
==47978==    by 0x5298FCC: testing::TestInfo::Run() (in /nix/store/qyg0071v3bf8vgcnccd6zi0gvc5abs3f-gtest-1.17.0/lib/libgtest.so.1.17.0)
==47978==    by 0x529920E: testing::TestSuite::Run() (in /nix/store/qyg0071v3bf8vgcnccd6zi0gvc5abs3f-gtest-1.17.0/lib/libgtest.so.1.17.0)
==47978==    by 0x52A3996: testing::internal::UnitTestImpl::RunAllTests() (in /nix/store/qyg0071v3bf8vgcnccd6zi0gvc5abs3f-gtest-1.17.0/lib/libgtest.so.1.17.0)
==47978==    by 0x52A3F74: testing::UnitTest::Run() (in /nix/store/qyg0071v3bf8vgcnccd6zi0gvc5abs3f-gtest-1.17.0/lib/libgtest.so.1.17.0)
==47978==    by 0x49DD52: RUN_ALL_TESTS (gtest.h:2334)
==47978==    by 0x49DD52: main (???:16)
…exceptions

filetransfer: handle exceptions thrown from enqueueItem
`pull_request_target` is a dangerous action trigger and should be avoided. This workflow comes from upstream, and is not necessary in this repository.
Delete .github/workflows/labels.yml: uses pull_request_target
libfetchers: verify git-lfs returns the same objects as git
This speeds up running meson (re)configuration from 16.6s to 2.9s.

More importantly though, it's better to just specify that we expect
this to work rather than try to compile something, since that can
silently mask errors and disable this feature.
Include panic() and std::terminate() info in Sentry crash reports
The only reason it treats 403 errors as 404s is that S3 returns 403
for files that don't exist if the bucket is unlistable. But we don't
want to ignore (and definitely shouldn't cache) 401/407 errors as
"file not found".

This fixes "token expired" errors from cache.flakehub.com being
silently ignored and cached. Now you get:

  # nix build --dry-run /nix/store/qnfhg5anpfpr4il3jlp9bnkf6vhyzbnj-determinate-nix-3.20.0
  error: unable to download 'https://cache.flakehub.com/qnfhg5anpfpr4il3jlp9bnkf6vhyzbnj.narinfo': HTTP error 401

         response body:

         {"code":401,"error":"Unauthorized","message":"Unauthorized.","request_id":"019e3a82-2474-7f80-8564-6e1bc2234654"}
  don't know how to build these paths:
    /nix/store/qnfhg5anpfpr4il3jlp9bnkf6vhyzbnj-determinate-nix-3.20.0

i.e. it's a fatal error now unless you use `--fallback`.
HttpBinaryCacheStore: Don't ignore 401/407 errors
…files

This should provide better stack unwinding in Sentry.
upload-debug-info-to-sentry.py: Upload binaries in addition to debug files
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.