openssl / openssl/openssl

y2038: tests should not be failing if system date is set to after 2038

Open
#21,671 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

branch: 3.0 branch: 3.1 branch: 3.2 branch: master triaged: bug
Dominant language
C
Stars
30.8k
Forks
11.5k
Avg merge
10m
Merged PRs (30d)
1

Description

To test the readiness of Yocto stack for Y2038 we run qemu virtual machines with RTC set to some day in 2040. This causes a few of openssl's tests to fail on both 32 bit and 64 bit systems: the reason is that test data, certificates in particular, seem to set their expiry date to 2035 or so.

I would propose to set the expiry date to far enough in the future that it won't have to be tweaked in our lifetimes: this way real Y2038 issues in openssl (or in things it depends on) can be exposed and fixed (it's well possible there are none, but that needs confirmation too).

Failures seen:

Test Summary Report
-------------------
80-test_cmp_http.t               (Wstat: 1280 (exited 5) Tests: 6 Failed: 5)
  Failed tests:  1-5
  Non-zero exit status: 5
80-test_cms.t                    (Wstat: 256 (exited 1) Tests: 16 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
90-test_sslapi.t                 (Wstat: 256 (exited 1) Tests: 3 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1

If there's agreement on this, I can prepare the patch, but I need guidance as to how to regenerate the data correctly (there seem to be no way of doing it with a script from metadata, rather the data is simply stored in git).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failures in 80-test_cmp_http.t, 80-test_cms.t, and 90-test_sslapi.t with the system date set after 2038. Inspect the certificate and other stored test data used by those tests; done means the fixtures remain valid in 2040 and all three test files pass without hiding genuine date-related failures.

Written by the indexing model from the issue text.

Assessment

Domain
security, testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.