[v22.x] `parallel/test-fs-utimes-y2K38` fails with `Error: EINVAL: invalid argument, utime` on armv7
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 122k
- Forks
- 37.3k
- Avg merge
- 4d 2h
- Merged PRs (30d)
- 283
Description
parallel/test-fs-utimes-y2K38 is failing in Debian 13 armv7 containers in our Jenkins CI.
Refs: https://github.com/nodejs/build/pull/4358#issuecomment-4662053132
e.g.
16:23:21 not ok 1312 parallel/test-fs-utimes-y2K38
16:23:21 ---
16:23:21 duration_ms: 328.27900
16:23:21 severity: fail
16:23:21 exitcode: 1
16:23:21 stack: |-
16:23:21 node:fs:2199
16:23:21 binding.utimes(
16:23:21 ^
16:23:21
16:23:21 Error: EINVAL: invalid argument, utime '/home/iojs/tmp/.tmp.1312/test-utimes-precision'
16:23:21 at Object.utimesSync (node:fs:2199:11)
16:23:21 at Object.<anonymous> (/home/iojs/build/workspace/node-test-binary-armv7l/test/parallel/test-fs-utimes-y2K38.js:46:4)
16:23:21 at Module._compile (node:internal/modules/cjs/loader:1781:14)
16:23:21 at Module._extensions..js (node:internal/modules/cjs/loader:1913:10)
16:23:21 at Module.load (node:internal/modules/cjs/loader:1505:32)
16:23:21 at Module._load (node:internal/modules/cjs/loader:1309:12)
16:23:21 at wrapModuleLoad (node:internal/modules/cjs/loader:254:19)
16:23:21 at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
16:23:21 at node:internal/main/run_main_module:36:49 {
16:23:21 errno: -22,
16:23:21 code: 'EINVAL',
16:23:21 syscall: 'utime',
16:23:21 path: '/home/iojs/tmp/.tmp.1312/test-utimes-precision'
16:23:21 }
16:23:21
16:23:21 Node.js v22.22.4-pre
16:23:21 ...
The test is skipped on the earlier Debian 11 armv7 containers, nor on the Ubuntu 22.04 containers:
e.g.
10:13:26 ok 1461 parallel/test-fs-utimes-y2K38 # skip File system appears to lack Y2K38 support (touch failed)
10:13:26 ---
10:13:26 duration_ms: 135.82300
10:13:26 ...
which indicates that the underlying filesystem doesn't support y2k38. However on Debian 13 we are not skipping (i.e. the touch and date sniff tests pass) and the invalid argument is being thrown when the later parts of the test run.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with test/parallel/test-fs-utimes-y2K38.js, especially the skip checks and the utimesSync call reported at line 46. Reproduce the test in a Debian 13 armv7 container and compare its touch/date detection with the later timestamp operations. Done means the test correctly handles this filesystem behavior without an unexpected EINVAL failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- debian, javascript, linux
- Domain
- operating-systems, testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100