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 Touch seeded packages, which is subscribed to procps in Ubuntu. 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 -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp