Skip to content

Tests fail in year 2038 #25442

@bmwiedemann

Description

@bmwiedemann

Nim Version

2.2.6

Description

While working on reproducible builds for openSUSE, I found that similar to previous issue #20285, nim-2.2.6 tests are failing when run after 2038-01-19

I'm testing this with kvm's -rtc base=2038-02-02T00:00:00 option, but using libfaketime might also work.

Current Output

This is a snippet from the build log

    Output:
    Traceback (most recent call last)
    ttimes.nim(28) at module ttimes
    times.nim(2311) at parse.parse
    iterators_1.nim(2263) at times.parse
    times.nim(2017) at times.parsePattern
    times.nim(1412) at times.now
    times.nim(985) at times.getTime
    times.nim(439) at convert.convert
 
    Unhandled exception: value out of range [RangeDefect]
    [FAILED] parseTest
    /home/abuild/rpmbuild/BUILD/nim-2.2.6-build/nim-2.2.6/tests/stdlib/ttimes.js:1595
        throw new Error(cbuf_33556659);
        ^
 
    Error: Error: unhandled exception: value out of range [RangeDefect]
    Traceback (most recent call last)
    ttimes.nim(337) at module ttimes
    times.nim(1412) at times.now
    times.nim(985) at times.getTime
    times.nim(439) at convert.convert

        at unhandledException (/home/abuild/rpmbuild/BUILD/nim-2.2.6-build/nim-2.2.6/tests/stdlib/ttimes.js:1595:11)
        at raiseException (/home/abuild/rpmbuild/BUILD/nim-2.2.6-build/nim-2.2.6/tests/stdlib/ttimes.js:541:5)
        at raiseRangeError (/home/abuild/rpmbuild/BUILD/nim-2.2.6-build/nim-2.2.6/tests/stdlib/ttimes.js:1392:5)
        at chckRange (/home/abuild/rpmbuild/BUILD/nim-2.2.6-build/nim-2.2.6/tests/stdlib/ttimes.js:568:5)
        at convert__pureZtimes_u556 (/home/abuild/rpmbuild/BUILD/nim-2.2.6-build/nim-2.2.6/tests/stdlib/ttimes.js:2646:18)
        at getTime__pureZtimes_u1229 (/home/abuild/rpmbuild/BUILD/nim-2.2.6-build/nim-2.2.6/tests/stdlib/ttimes.js:3262:29)
        at now__pureZtimes_u1839 (/home/abuild/rpmbuild/BUILD/nim-2.2.6-build/nim-2.2.6/tests/stdlib/ttimes.js:3280:74)
        at Object.<anonymous> (/home/abuild/rpmbuild/BUILD/nim-2.2.6-build/nim-2.2.6/tests/stdlib/ttimes.js:17484:26)
        at Module._compile (node:internal/modules/cjs/loader:1761:14)
        at Object..js (node:internal/modules/cjs/loader:1893:10)

    Node.js v24.12.0

A full build log is available at
https://rb.zq1.de/other/nim-2038-log.txt

Expected Output

tests should keep passing for 15+ years

Known Workarounds

No response

Additional Information

I'm testing on openSUSE Tumbleweed, but this is likely not dependent on the OS.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions