Skip to content

Upstream tracking#165

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

Upstream tracking#165
grahamc wants to merge 2802 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
proski and others added 30 commits May 7, 2026 07:10
These fields are in fact optional, and various binary cache
implementations do not return them (e.g. when NARs are compressed on
the fly).
This is a built-in binary cache server, similar to nix-serve. It uses
libmicrohttpd.
If we have a negative path info cache entry for the path being added
(e.g. due to a prior call to maybeQueryPathInfo()), then we need to
use isValidPathUncached(), otherwise addToStore() will fail.
An operation like

  $ nix path-info --store https://cache.nixos.org /nix/store/2lwxwsaixnaq561hbq02v5236935ass8-coreutils-full-9.8 -vv

previously resulted in multiple downloads of the same .narinfo:

  downloading 'https://cache.nixos.org/2lwxwsaixnaq561hbq02v5236935ass8.narinfo'...
  querying info about '/nix/store/2lwxwsaixnaq561hbq02v5236935ass8-coreutils-full-9.8' on 'https://cache.nixos.org'...
  downloading 'https://cache.nixos.org/2lwxwsaixnaq561hbq02v5236935ass8.narinfo'...

This is because queryMissing() calls isValidPath(), which causes a
HEAD request to the binary cache. Subsequently we call
queryValidPath(), which requires an additional GET request. It's
better to do a HEAD request right away.

(Of course, it's a bit questionable whether `nix path-info` should
call queryMissing() in the first place...)
…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
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.