1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-27 16:51:15 +02:00
Commit graph

18421 commits

Author SHA1 Message Date
Picnoir
f68cdf1801 gc: resume GC after a pathinuse error
First the motivation: I recently faced a bug that I assume is coming
from the topoSortPaths function where the GC was trying to delete a
path having some alive referrers. I resolved this by manually deleting
the faulty path referrers using nix-store --query --referrers. I sadly
did not manage to reproduce this bug.

This bug alone is not a big deal. However, this bug is
triggering a cascading failure: invalidatePathChecked is throwing a
PathInUse exception. This exception is not catched and fails the whole GC
run. From there, the machine (a builder machine) was unable to GC its
Nix store, which led to an almost full disk with no way to
automatically delete the dead Nix paths.

Instead, I think we should log the error for the specific store path
we're trying to delete, specifying we can't delete this path because
it still has referrers. Once we're done with logging that, the GC run
should continue to delete the dead store paths it can delete.

(cherry picked from commit ced8d311a5)
2025-01-15 15:59:24 +00:00
Robert Hensing
1422832f7c Resolve conflict
Conflict introduced in 9ee4a85a99
2025-01-15 07:10:34 +01:00
Jörg Thalheim
7012e1ff8c
Merge pull request #12208 from NixOS/mergify/bp/2.24-maintenance/pr-11305
[2.24] Document function application operator (backport #11305)
2025-01-13 09:56:16 +01:00
Jörg Thalheim
e81be91738
Merge pull request #12242 from NixOS/mergify/bp/2.24-maintenance/pr-12235
libutil: thread-pool: ensure threads finished on error (backport #12235)
2025-01-13 09:49:15 +01:00
Robert Hensing
9cc5786201 doc: Edit language/operators
Co-authored-by: John Ericson <John.Ericson@Obsidian.Systems>
Co-authored-by: Valentin Gagarin <valentin@gagarin.work>
(cherry picked from commit 06b18cff20)
2025-01-13 09:07:22 +01:00
Robert Hensing
acd43b2239 doc: Document function application operator
(cherry picked from commit e225b63062)
2025-01-13 09:07:22 +01:00
Dominique Martinet
3cd8c1e53d libutil: thread-pool: ensure threads finished on error
This fixes segfaults with nix copy when there was an error processing
addMultipleToStore.

Running with ASAN/TSAN pointed at an use-after-free with threads from
the pool accessing the graph declared in processGraph after the function
was exiting and destructing the variables.

It turns out that if there is an error before pool.process() is called,
for example while we are still enqueuing tasks, then pool.process()
isn't called and threads are still left to run.

By creating the pool last we ensure that it is stopped first before
running other destructors even if an exception happens early.

[ lix porting note: nix does not name threads so the patch has been
adapted to not pass thread name ]

Link: https://git.lix.systems/lix-project/lix/issues/618
Link: https://gerrit.lix.systems/c/lix/+/2355
(cherry picked from commit afac093b34)
2025-01-13 08:03:02 +00:00
Robert Hensing
10438e6cfd Reject merge conflicts
They're usually found by other checks, but docs would remain
susceptible.

(cherry picked from commit 29a1a21ce4)
2025-01-12 21:22:43 +00:00
mergify[bot]
c803fe0785
Merge pull request #12197 from NixOS/mergify/bp/2.24-maintenance/pr-11541
nix-profile.sh.in: fix envvar condition (backport #11541)
2025-01-12 13:09:04 +00:00
mergify[bot]
9a85784be2
Merge pull request #12209 from NixOS/mergify/bp/2.24-maintenance/pr-11294
parser-state: fix attribute merging (backport #11294)
2025-01-12 12:36:06 +00:00
Robert Hensing
a69d32d194 Resolve conflict
Some of the code before https://github.com/NixOS/nix/pull/11351 did not
have the problem. What remains wasn't all that problematic, but is good
to have anyway.
2025-01-12 13:15:03 +01:00
Ryan Hendrickson
e0e50fb01f parser-state: fix attribute merging
(cherry picked from commit 8034589d7e)
2025-01-12 13:07:28 +01:00
Ryan Hendrickson
6ae5aa7fa0 parser.y: move attr doc setting into addAttr
(cherry picked from commit b0a8430e85)
2025-01-12 13:07:28 +01:00
Ryan Hendrickson
cd169f14f0 parser.y: use names where I'll be refactoring
(cherry picked from commit 429a197d24)
2025-01-12 13:07:28 +01:00
Jörg Thalheim
e3715053b1
Merge pull request #12183 from NixOS/mergify/bp/2.24-maintenance/pr-12051
Skip tests on systems with restricted usernamespaces (backport #12051)
2025-01-11 21:42:36 +01:00
Jörg Thalheim
ada649ad7f functional-tests: skip tests if the kernel restricts unprivileged user namespaces
Update tests/functional/common/functions.sh

Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
Co-authored-by: bryango <bryango@users.noreply.github.com>
(cherry picked from commit da7f7ba810)
2025-01-11 20:59:50 +01:00
mergify[bot]
e1e219a299
Merge pull request #12211 from NixOS/mergify/bp/2.24-maintenance/pr-11240
fix: bash mangles flake ref completion (backport #11240)
2025-01-10 23:43:24 +00:00
mergify[bot]
a658bafce7
Merge pull request #12207 from NixOS/mergify/bp/2.24-maintenance/pr-11343
withFramedSink(): Don't use a thread to monitor the other side (backport #11343)
2025-01-10 23:43:21 +00:00
mergify[bot]
e76757083a
Merge pull request #12206 from NixOS/mergify/bp/2.24-maintenance/pr-11381
Fix few duplicate word occurrences (backport #11381)
2025-01-10 23:43:18 +00:00
mergify[bot]
c9dd4a7c28
Merge pull request #12205 from NixOS/mergify/bp/2.24-maintenance/pr-11407
add removal of ~root/.cache/nix to uninstall instructions (backport #11407)
2025-01-10 23:43:16 +00:00
mergify[bot]
01cb05a265
Merge pull request #12203 from NixOS/mergify/bp/2.24-maintenance/pr-11424
Pull fut.get() out of the lock (backport #11424)
2025-01-10 22:12:00 +00:00
mergify[bot]
9328fc7529
Merge pull request #12204 from NixOS/mergify/bp/2.24-maintenance/pr-11371
Fix diskutil deleteVolume command in Uninstall guide (backport #11371)
2025-01-10 22:11:57 +00:00
mergify[bot]
92e5f64068
Merge pull request #12202 from NixOS/mergify/bp/2.24-maintenance/pr-11514
nix derivation add: Remove reference to "installable" (backport #11514)
2025-01-10 22:11:54 +00:00
mergify[bot]
283249a972
Merge pull request #12201 from NixOS/mergify/bp/2.24-maintenance/pr-11611
doc, src: Fix various spelling typos (backport #11611)
2025-01-10 22:11:52 +00:00
mergify[bot]
4d2cc07b48
Merge pull request #12200 from NixOS/mergify/bp/2.24-maintenance/pr-11613
doc/nix fmt: Do not document behavior we do not control (backport #11613)
2025-01-10 22:11:49 +00:00
mergify[bot]
5c0f2b744a
Merge pull request #12199 from NixOS/mergify/bp/2.24-maintenance/pr-11526
docs: Provide an example of updating multiple inputs (backport #11526)
2025-01-10 20:51:42 +00:00
mergify[bot]
0e95d8b467
Merge pull request #12198 from NixOS/mergify/bp/2.24-maintenance/pr-11530
add description + example for nix flake archive (backport #11530)
2025-01-10 20:51:38 +00:00
mergify[bot]
53bc8b543c
Merge pull request #12196 from NixOS/mergify/bp/2.24-maintenance/pr-11621
Improve documentation of `nix flake lock` (backport #11621)
2025-01-10 20:51:35 +00:00
mergify[bot]
86da8bbbf3
Merge pull request #12194 from NixOS/mergify/bp/2.24-maintenance/pr-11684
libstore: Make our sandbox pivot_root directory accessible to ourself (backport #11684)
2025-01-10 20:51:33 +00:00
mergify[bot]
fcdca4f8d1
Merge pull request #12195 from NixOS/mergify/bp/2.24-maintenance/pr-11629
doc/manual: Fix some broken fragments (backport #11629)
2025-01-10 20:51:30 +00:00
mergify[bot]
f393260a5d
Merge pull request #12192 from NixOS/mergify/bp/2.24-maintenance/pr-11717
docs: clarify syntax for escaping dollar curlies (backport #11717)
2025-01-10 19:35:02 +00:00
mergify[bot]
d3cb938e07
Merge pull request #12191 from NixOS/mergify/bp/2.24-maintenance/pr-11723
doc: Explain why tryEval does not return the message (backport #11723)
2025-01-10 19:34:59 +00:00
mergify[bot]
51e41edbef
Merge pull request #12190 from NixOS/mergify/bp/2.24-maintenance/pr-11813
fix(libstore-tests): remove use-after-free bug for `StringSource` (backport #11813)
2025-01-10 19:34:56 +00:00
mergify[bot]
daf526f19d
Merge pull request #12188 from NixOS/mergify/bp/2.24-maintenance/pr-11853
fix(libmain/common-args): do not exceed maximum allowed verbosity (backport #11853)
2025-01-10 19:34:54 +00:00
mergify[bot]
d6217bc691
Merge pull request #12187 from NixOS/mergify/bp/2.24-maintenance/pr-11981
docker: Fix command "nix profile install", Don't require --impure (fix for 2.25) (backport #11981)
2025-01-10 19:34:51 +00:00
mergify[bot]
22c24a87a1
Merge pull request #12176 from NixOS/mergify/bp/2.24-maintenance/pr-12114
fix documentation of substring (backport #12114)
2025-01-10 17:21:50 +00:00
Eelco Dolstra
f2bb7e043b
Merge pull request #12185 from NixOS/mergify/bp/2.24-maintenance/pr-12016
Disable suid and atime on the /nix mount point on Darwin (backport #12016)
2025-01-10 15:16:44 +01:00
Eelco Dolstra
9a7196ce62
Merge pull request #12180 from NixOS/mergify/bp/2.24-maintenance/pr-12091
libstore: fixup unformatted uri when S3 getObject fails (backport #12091)
2025-01-10 15:11:08 +01:00
Eelco Dolstra
7a2b1cbd71
Merge pull request #12173 from NixOS/mergify/bp/2.24-maintenance/pr-12127
toJSON: re-throw serialization exception (backport #12127)
2025-01-10 13:32:42 +01:00
mergify[bot]
534473e90b
Merge pull request #12170 from NixOS/mergify/bp/2.24-maintenance/pr-12155
Document `--max-freed` for `nix-collect-garbage` (backport #12155)
2025-01-10 11:05:01 +00:00
0x5a4
ce5c0c64af fix: bash mangles flake ref completion
(cherry picked from commit 088fa815d3)
2025-01-10 10:42:07 +00:00
Eelco Dolstra
931eb85f50 Add FIXME
(cherry picked from commit fac756fed4)
2025-01-10 10:36:06 +00:00
Eelco Dolstra
a9020404cf select() -> poll() for Windows compat
(cherry picked from commit 270c8469d7)
2025-01-10 10:36:06 +00:00
Eelco Dolstra
77a71c518f Update src/libutil/serialise.hh
Co-authored-by: John Ericson <git@JohnEricson.me>
(cherry picked from commit ce7cf4a2d3)
2025-01-10 10:36:06 +00:00
Eelco Dolstra
36f3fb72e9 withFramedSink(): Don't use a thread to monitor the other side
Since withFramedSink() is now used a lot more than in the past (for
every addToStore() variant), we were creating a lot of threads, e.g.

  nix flake show --no-eval-cache --all-systems github:NixOS/nix/afdd12be5e19c0001ff3297dea544301108d298

would create 46418 threads. While threads on Linux are cheap, this is
still substantial overhead.

So instead, just poll from FramedSink before every write whether there
are pending messages from the daemon. This could slightly increase the
latency on log messages from the daemon, but not on exceptions (which
were only synchronously checked from FramedSink anyway).

This speeds up the command above from 19.2s to 17.5s on my machine (a
9% speedup).

(cherry picked from commit 39daa4a0d3)
2025-01-10 10:36:05 +00:00
Jan Hrcek
5099768970 Fix few duplicate word occurrences (#11381)
(cherry picked from commit cb4b9be458)
2025-01-10 10:29:59 +00:00
Jeremy Kerfs
6f5684f6d1 add removal of ~root/.cache/nix to uninstall instructions (#11407)
(cherry picked from commit 4decd6f8b3)
2025-01-10 10:29:55 +00:00
Seggy Umboh
d6488efeae Fix diskutil deleteVolume command in Uninstall guide (#11371)
Co-authored-by: Valentin Gagarin <valentin@gagarin.work>
(cherry picked from commit 8e63dc4455)
2025-01-10 10:28:54 +00:00
Jeremy Kolb
bc8611a29b Remote nullptr
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
(cherry picked from commit 8152c5c828)
2025-01-10 10:26:53 +00:00
Jeremy Kolb
1a21eb43af Pull fut.get() out of the lock
This is https://gerrit.lix.systems/c/lix/+/1462 by @jade_

see: https://git.lix.systems/lix-project/lix/issues/366
see: https://gerrit.lix.systems/c/lix/+/1462
(cherry picked from commit 46f6505865)
2025-01-10 10:26:53 +00:00