-
Notifications
You must be signed in to change notification settings - Fork 167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
/tmp filling up on CI hosts #3864
Comments
$ ansible -m command -a "df -h" test-equinix_mnx-smartos20-x64-?
test-equinix_mnx-smartos20-x64-3 | CHANGED | rc=0 >>
Filesystem Size Used Avail Use% Mounted on
zones/356655a2-12e6-e1d7-ac7b-b5188ad37cb0 100G 30G 71G 30% /
/.zonecontrol 56T 57G 56T 1% /.zonecontrol
/lib 314M 292M 23M 93% /lib
/lib/svc/manifest 56T 1.5M 56T 1% /lib/svc/manifest
/usr 433M 394M 40M 91% /usr
swap 16G 4.6G 12G 29% /etc/svc/volatile
swap 4.0G 4.0G 0 100% /tmp
swap 16G 4.6G 12G 29% /var/run
test-equinix_mnx-smartos20-x64-4 | CHANGED | rc=0 >>
Filesystem Size Used Avail Use% Mounted on
zones/c6e3d47a-1421-ee11-c52d-c3c80c198e95 100G 25G 76G 25% /
/.zonecontrol 56T 57G 56T 1% /.zonecontrol
/lib 314M 292M 23M 93% /lib
/lib/svc/manifest 56T 1.5M 56T 1% /lib/svc/manifest
/usr 433M 394M 40M 91% /usr
swap 16G 2.3G 14G 15% /etc/svc/volatile
swap 4.0G 1.8G 2.3G 45% /tmp
swap 16G 2.3G 14G 15% /var/run It's full of [root@test-equinix_mnx-smartos20-x64-3 ~]# rm -rf /tmp/node-coverage-*
[root@test-equinix_mnx-smartos20-x64-3 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
zones/356655a2-12e6-e1d7-ac7b-b5188ad37cb0 100G 30G 71G 30% /
/.zonecontrol 56T 57G 56T 1% /.zonecontrol
/lib 314M 292M 23M 93% /lib
/lib/svc/manifest 56T 1.5M 56T 1% /lib/svc/manifest
/usr 433M 394M 40M 91% /usr
swap 16G 955M 16G 6% /etc/svc/volatile
swap 4.0G 44K 4.0G 1% /tmp
swap 16G 955M 16G 6% /var/run
[root@test-equinix_mnx-smartos20-x64-3 ~]# |
I've cleared out [root@test-equinix_mnx-smartos20-x64-4 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
zones/c6e3d47a-1421-ee11-c52d-c3c80c198e95 100G 25G 76G 25% /
/.zonecontrol 56T 57G 56T 1% /.zonecontrol
/lib 314M 292M 23M 93% /lib
/lib/svc/manifest 56T 1.5M 56T 1% /lib/svc/manifest
/usr 433M 394M 40M 91% /usr
swap 16G 2.3G 14G 15% /etc/svc/volatile
swap 4.0G 1.8G 2.3G 45% /tmp
swap 16G 2.3G 14G 15% /var/run
[root@test-equinix_mnx-smartos20-x64-4 ~]# rm -rf /tmp/node-coverage-*
[root@test-equinix_mnx-smartos20-x64-4 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
zones/c6e3d47a-1421-ee11-c52d-c3c80c198e95 100G 25G 76G 25% /
/.zonecontrol 56T 57G 56T 1% /.zonecontrol
/lib 314M 292M 23M 93% /lib
/lib/svc/manifest 56T 1.5M 56T 1% /lib/svc/manifest
/usr 433M 394M 40M 91% /usr
swap 16G 467M 16G 3% /etc/svc/volatile
swap 4.0G 44K 4.0G 1% /tmp
swap 16G 467M 16G 3% /var/run
[root@test-equinix_mnx-smartos20-x64-4 ~]# |
Good catch! |
FWIW I ran drwx------. 2 rlau rlau 94 Aug 14 13:48 node-coverage-09AcaL
drwx------. 2 rlau rlau 138 Aug 14 13:48 node-coverage-6qYENJ
drwx------. 2 rlau rlau 94 Aug 14 13:48 node-coverage-afMxbz
drwx------. 2 rlau rlau 94 Aug 14 13:48 node-coverage-e0jO5f
drwx------. 2 rlau rlau 138 Aug 14 13:48 node-coverage-F6ZUIw
drwx------. 2 rlau rlau 50 Aug 14 13:48 node-coverage-hHzLhL
drwx------. 2 rlau rlau 94 Aug 14 13:48 node-coverage-Lc7I1n
drwx------. 2 rlau rlau 94 Aug 14 13:48 node-coverage-otzELS
drwx------. 2 rlau rlau 94 Aug 14 13:48 node-coverage-p2PeI0
drwx------. 2 rlau rlau 94 Aug 14 13:48 node-coverage-q6CVl4
drwx------. 2 rlau rlau 50 Aug 14 13:48 node-coverage-RdCe2w
drwx------. 2 rlau rlau 94 Aug 14 13:48 node-coverage-SnPBDM
drwx------. 2 rlau rlau 94 Aug 14 13:48 node-coverage-tw4y03
drwx------. 2 rlau rlau 94 Aug 14 13:48 node-coverage-x0GveC
drwx------. 2 rlau rlau 50 Aug 14 13:48 node-coverage-zBbuSF
-rw-r--r--. 1 rlau rlau 138954 Aug 14 13:47 perf-426641.map
-rw-r--r--. 1 rlau rlau 112792 Aug 14 13:47 perf-426677.map |
I think some of those are from |
If I exclude $ rm -rf /tmp/node-coverage-* /tmp/perf-*.map
$ tools/test.py -J --skip=parallel/test-runner-coverage parallel
[00:28|% 100|+ 3508|- 0]: Done
All tests passed.
$ ls -al /tmp
...
drwx------. 2 rlau rlau 51 Aug 14 17:20 node-coverage-8Oj2sa
drwx------. 2 rlau rlau 96 Aug 14 17:20 node-coverage-Xwd98L
-rw-r--r--. 1 rlau rlau 138954 Aug 14 17:20 perf-1822721.map
-rw-r--r--. 1 rlau rlau 112792 Aug 14 17:20 perf-1822738.map
...
$ |
Can you try to change the permissions so only root is allowed to write to |
Not on that machine, but should be able to in a container. |
$ mkdir /tmp/cantwrite
$ chmod u-w /tmp/cantwrite/
$ ls -al /tmp/cantwrite
total 4
dr-xr-xr-x. 2 rlau rlau 6 Aug 14 19:15 .
drwxrwxrwt. 12 nobody nobody 4096 Aug 14 19:15 ..
$ TMPDIR=/tmp/cantwrite/ tools/test.py
...
[03:29|% 100|+ 4014|- 2]: Done
Failed tests:
out/Release/node /home/rlau/sandbox/github/node/test/parallel/test-runner-output.mjs
out/Release/node /home/rlau/sandbox/github/node/test/parallel/test-runner-coverage.js
$ |
With an actual unwritable [03:26|% 100|+ 4012|- 4]: Done
Failed tests:
out/Release/node /home/nodejs/node/test/parallel/test-cli-node-options.js
out/Release/node /home/nodejs/node/test/parallel/test-runner-coverage.js
out/Release/node /home/nodejs/node/test/parallel/test-runner-output.mjs
out/Release/node /home/nodejs/node/test/parallel/test-trace-events-http.js
$ |
|
For |
I think those cases are working as expected -- but that test has variants that deliberately do not set |
Thanks Richard, you are right about this, when I commented out the test that has |
I spent some time to further investigate and found out whether or not ^ this might explain why when the write access is disabled to the temp dir the test failed immediately. I have a question - after we've done the copying, shouldn't we remove the temp created dir? @cjihrig |
We could. I wouldn't expect to need to in the temp directory though. The test could also clean up those files. |
It is hard to clean those files after the tests - because the way we created them is using const coverageDirectory = mkdtempSync(join(tmpdir(), 'node-coverage-')); which is a unique (random) temporary directory, e.g. |
I attempted to remove the tmp dir by doing this: } finally {
if (dir) {
dir.closeSync();
+ rmSync(this.coverageDirectory, {__proto__: null, recursive: true });
}
}
} in the
Any idea? 👀 @cjihrig |
Not sure without trying to debug it myself. |
If you could try to |
Sorry for being annoying to add another quick note here, the whole reason I wanted to fix this issue is because each time we run the above test (
This is fine for local but on CI it would easily fill up the space. |
Refs: nodejs/build#3864 PR-URL: #54395 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Juan José Arboleda <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]>
Refs: nodejs/build#3864 PR-URL: #54395 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Juan José Arboleda <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]>
|
I cleaned it up, and |
Refs: nodejs/build#3864 PR-URL: #54395 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Juan José Arboleda <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]>
The test runner's code coverage leaves old coverage data in the temp directory. This commit updates the cleanup logic to: - Stop code collection. Otherwise V8 would write collection data again when the process exits. - Remove the temp directory containing the coverage data. - Attempt to clean up the coverage data even if parsing the data resulted in an error. With this change, I no longer see any coverage data left behind in the system temp directory. Refs: nodejs/build#3864 Refs: nodejs/build#3887
The test runner's code coverage leaves old coverage data in the temp directory. This commit updates the cleanup logic to: - Stop code collection. Otherwise V8 would write collection data again when the process exits. - Remove the temp directory containing the coverage data. - Attempt to clean up the coverage data even if parsing the data resulted in an error. With this change, I no longer see any coverage data left behind in the system temp directory. Refs: nodejs/build#3864 Refs: nodejs/build#3887
The test runner's code coverage leaves old coverage data in the temp directory. This commit updates the cleanup logic to: - Stop code collection. Otherwise V8 would write collection data again when the process exits. - Remove the temp directory containing the coverage data. - Attempt to clean up the coverage data even if parsing the data resulted in an error. With this change, I no longer see any coverage data left behind in the system temp directory. Refs: nodejs/build#3864 Refs: nodejs/build#3887 PR-URL: #54856 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: James M Snell <[email protected]>
|
The test runner's code coverage leaves old coverage data in the temp directory. This commit updates the cleanup logic to: - Stop code collection. Otherwise V8 would write collection data again when the process exits. - Remove the temp directory containing the coverage data. - Attempt to clean up the coverage data even if parsing the data resulted in an error. With this change, I no longer see any coverage data left behind in the system temp directory. Refs: nodejs/build#3864 Refs: nodejs/build#3887 PR-URL: #54856 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: James M Snell <[email protected]>
The test runner's code coverage leaves old coverage data in the temp directory. This commit updates the cleanup logic to: - Stop code collection. Otherwise V8 would write collection data again when the process exits. - Remove the temp directory containing the coverage data. - Attempt to clean up the coverage data even if parsing the data resulted in an error. With this change, I no longer see any coverage data left behind in the system temp directory. Refs: nodejs/build#3864 Refs: nodejs/build#3887 PR-URL: #54856 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: James M Snell <[email protected]>
The test runner's code coverage leaves old coverage data in the temp directory. This commit updates the cleanup logic to: - Stop code collection. Otherwise V8 would write collection data again when the process exits. - Remove the temp directory containing the coverage data. - Attempt to clean up the coverage data even if parsing the data resulted in an error. With this change, I no longer see any coverage data left behind in the system temp directory. Refs: nodejs/build#3864 Refs: nodejs/build#3887 PR-URL: #54856 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: James M Snell <[email protected]>
The test runner's code coverage leaves old coverage data in the temp directory. This commit updates the cleanup logic to: - Stop code collection. Otherwise V8 would write collection data again when the process exits. - Remove the temp directory containing the coverage data. - Attempt to clean up the coverage data even if parsing the data resulted in an error. With this change, I no longer see any coverage data left behind in the system temp directory. Refs: nodejs/build#3864 Refs: nodejs/build#3887 PR-URL: #54856 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: James M Snell <[email protected]>
The test runner's code coverage leaves old coverage data in the temp directory. This commit updates the cleanup logic to: - Stop code collection. Otherwise V8 would write collection data again when the process exits. - Remove the temp directory containing the coverage data. - Attempt to clean up the coverage data even if parsing the data resulted in an error. With this change, I no longer see any coverage data left behind in the system temp directory. Refs: nodejs/build#3864 Refs: nodejs/build#3887 PR-URL: #54856 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: James M Snell <[email protected]>
The test runner's code coverage leaves old coverage data in the temp directory. This commit updates the cleanup logic to: - Stop code collection. Otherwise V8 would write collection data again when the process exits. - Remove the temp directory containing the coverage data. - Attempt to clean up the coverage data even if parsing the data resulted in an error. With this change, I no longer see any coverage data left behind in the system temp directory. Refs: nodejs/build#3864 Refs: nodejs/build#3887 PR-URL: #54856 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: James M Snell <[email protected]>
The test runner's code coverage leaves old coverage data in the temp directory. This commit updates the cleanup logic to: - Stop code collection. Otherwise V8 would write collection data again when the process exits. - Remove the temp directory containing the coverage data. - Attempt to clean up the coverage data even if parsing the data resulted in an error. With this change, I no longer see any coverage data left behind in the system temp directory. Refs: nodejs/build#3864 Refs: nodejs/build#3887 PR-URL: #54856 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: James M Snell <[email protected]>
The test runner's code coverage leaves old coverage data in the temp directory. This commit updates the cleanup logic to: - Stop code collection. Otherwise V8 would write collection data again when the process exits. - Remove the temp directory containing the coverage data. - Attempt to clean up the coverage data even if parsing the data resulted in an error. With this change, I no longer see any coverage data left behind in the system temp directory. Refs: nodejs/build#3864 Refs: nodejs/build#3887 PR-URL: nodejs#54856 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: James M Snell <[email protected]>
The test runner's code coverage leaves old coverage data in the temp directory. This commit updates the cleanup logic to: - Stop code collection. Otherwise V8 would write collection data again when the process exits. - Remove the temp directory containing the coverage data. - Attempt to clean up the coverage data even if parsing the data resulted in an error. With this change, I no longer see any coverage data left behind in the system temp directory. Refs: nodejs/build#3864 Refs: nodejs/build#3887 PR-URL: nodejs#54856 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Jake Yuesong Li <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: James M Snell <[email protected]>
https://ci.nodejs.org/job/node-test-commit-smartos/buildTimeTrend
It's slowing down core development.
The text was updated successfully, but these errors were encountered: