[Bug 2035061] Re: uptime -p reports incorrect output after 52 weeks

Andreas Hasenack 2035061 at bugs.launchpad.net
Fri Sep 15 18:37:55 UTC 2023


Time calculations can be so tricky!

The patch is also changing the non-human-readable case (without -p), if
I understood it correctly. I think this also needs to be tested.

I think it would be beneficial to include the upcoming fix for the other
corner case you found, when uptime is exactly 60s, as that also affects
the later versions. That's one less SRU for the future.

Finally, since you have such a nice case, do you think you could add
that as a DEP8 test? The bind mount works in a LXD container. The
upstream testsuite/uptime.test is too basic to be changed for this case,
it's basically just a smoke test.

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/2035061

Title:
  uptime -p reports incorrect output after 52 weeks

Status in procps package in Ubuntu:
  New
Status in procps source package in Focal:
  New
Status in procps source package in Jammy:
  New

Bug description:
  [ Impact ]

  uptime -p will provide incorrect data for 24 hours after exactly 52 weeks. Users and tools utilizing this command will receive example output "up 2 hours" instead of "up 52 weeks, 2 hours". After 24 hours since 52 weeks, uptime -p will report "up 1 year" which is correct output.
  Issue is already fixed in upstream https://gitlab.com/procps-ng/procps/-/commit/0496b39876d569fe1cecb76ad5ef212cd14c0374.
  Latest procps releases already include this patch (procps 4.0.3 lunar/mantic)
  The fix is needed for following set of packages:
  procps | 2:3.3.17-6ubuntu2   | jammy
  procps | 2:3.3.16-1ubuntu2   | focal

  [ Test Plan ]

  Reproduction:
  UPTIME="31528920 31528800"; mkfifo uptime_fifo; while true; do cat <<<$UPTIME > uptime_fifo; done & sudo mount -obind uptime_fifo /proc/uptime
  uptime -p
  Running above commands will result in incorrect uptime output.
  Testing:
  In attached uptime_test_results file there is modified print_uptime function which has been used to test multiple corner cases.

  [ Where problems could occur ]

  Proposed changes modifies output format of "uptime -p". Issue has been already fixed in latest version of procps package available in lunar/mantic however older releases are based on different code base and patch cannot be directly cherry-picked. Due to backport requirements some code of "uptime" (without -p) has been also changed but this should not impact logic for that usage.
  As the change focuses on modifying "uptime -p" output format any potential issues will impact this command.
  I have also looked for a reverse dependencies on procps package to check for potential uses of uptime -p, however I was not able to find any. Internally within procps package this functionality is used in "top" application, however for that case "uptime" (without -p) is used.

  [ Other Info ]
  Bug upstream: https://gitlab.com/procps-ng/procps/-/issues/217
  Following patch is needed for older releases: https://gitlab.com/procps-ng/procps/-/commit/0496b39876d569fe1cecb76ad5ef212cd14c0374
  Old commit on which upstream patch is based: https://gitlab.com/procps-ng/procps/-/commit/8827c6763f79f77a126968e200b0e402de7cb749
  Small change on top of proposed patch (already included in debdiff): https://gitlab.com/procps-ng/procps/-/commit/10824b0655f3eeaeac87ae6e4e3881429a237f3e

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/procps/+bug/2035061/+subscriptions




More information about the Ubuntu-sponsors mailing list