aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJade Lovelace <lix@jade.fyi>2024-06-27 22:47:21 -0700
committerJade Lovelace <lix@jade.fyi>2024-06-27 22:53:36 -0700
commitd85309f7ca154c014cf53777c76df5af44b50500 (patch)
treeac169128f69a90fd4a3fd22b80aa063b1f13fedc
parentd92712673ba8d169606a1db83224969952f8ac07 (diff)
store: delete obsolete lsof-disabling code
Since Ifa0adda7984e, we don't use this code anymore on macOS, so we have no reason to have a knob to disable it anymore. Change-Id: Ie29a8a8978d9aefd4551895f4f9b3cc0827496df
-rw-r--r--doc/manual/src/contributing/testing.md3
-rw-r--r--src/libstore/gc.cc28
2 files changed, 13 insertions, 18 deletions
diff --git a/doc/manual/src/contributing/testing.md b/doc/manual/src/contributing/testing.md
index 84836b891..b6b5318e0 100644
--- a/doc/manual/src/contributing/testing.md
+++ b/doc/manual/src/contributing/testing.md
@@ -433,9 +433,6 @@ I grepped `src/` for `get[eE]nv\("` to find the mentions in Lix code.
- `NIX_PROFILE` - Selects which profile `nix-env` will operate on. Documented elsewhere.
- `NIX_SSHOPTS` - Options passed to `ssh(1)` when using a ssh remote store.
Incorrectly documented on `nix-copy-closure` which is *surely* not the only place they are used??
-- `_NIX_TEST_NO_LSOF` - Used on non-Linux, non-macOS platforms to disable using `lsof` when finding gc roots.
-
- Since https://git.lix.systems/lix-project/lix/issues/156 was fixed, this should probably just be removed as it was a bad workaround for a macOS issue.
- `_NIX_TEST_GC_SYNC_1` - Path to a pipe that is used to block the GC briefly to validate invariants from the test suite.
- `_NIX_TEST_GC_SYNC_2` - Path to a pipe that is used to block the GC briefly to validate invariants from the test suite.
- `_NIX_TEST_FREE_SPACE_FILE` - Path to a file containing a decimal number with the free space that the GC is to believe it has.
diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc
index d58e3c8eb..02234d404 100644
--- a/src/libstore/gc.cc
+++ b/src/libstore/gc.cc
@@ -321,22 +321,20 @@ Roots LocalStore::findRoots(bool censor)
void LocalStore::findPlatformRoots(UncheckedRoots & unchecked)
{
- // lsof is really slow on OS X. This actually causes the gc-concurrent.sh test to fail.
- // See: https://github.com/NixOS/nix/issues/3011
- // Because of this we disable lsof when running the tests.
- if (getEnv("_NIX_TEST_NO_LSOF") != "1") {
- try {
- std::regex lsofRegex(R"(^n(/.*)$)");
- auto lsofLines =
- tokenizeString<std::vector<std::string>>(runProgram(LSOF, true, { "-n", "-w", "-F", "n" }), "\n");
- for (const auto & line : lsofLines) {
- std::smatch match;
- if (std::regex_match(line, match, lsofRegex))
- unchecked[match[1]].emplace("{lsof}");
- }
- } catch (ExecError & e) {
- /* lsof not installed, lsof failed */
+ // N.B. This is (read: undertested!) fallback code only used for
+ // non-Darwin, non-Linux platforms. Both major platforms have
+ // platform-specific code in src/libstore/platform/
+ try {
+ std::regex lsofRegex(R"(^n(/.*)$)");
+ auto lsofLines =
+ tokenizeString<std::vector<std::string>>(runProgram(LSOF, true, { "-n", "-w", "-F", "n" }), "\n");
+ for (const auto & line : lsofLines) {
+ std::smatch match;
+ if (std::regex_match(line, match, lsofRegex))
+ unchecked[match[1]].emplace("{lsof}");
}
+ } catch (ExecError & e) {
+ /* lsof not installed, lsof failed */
}
}