[Bug 2035061] Re: uptime -p reports incorrect output after 52 weeks
Robert Malz
2035061 at bugs.launchpad.net
Fri Sep 15 09:58:51 UTC 2023
** Description changed:
- [IMPACT]
+ [ Impact ]
- uptime will provide incorrect data after 52 weeks. This is at least confusing for users utilizing this tool.
- Issue is already fixed in upstream https://gitlab.com/procps-ng/procps/-/commit/8827c6763f79f77a126968e200b0e402de7cb749.
+ 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 CASE]
+ [ 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.
- [REGRESSION POTENTIAL]
+ [ Where problems could occur ]
- The patch is already available in upstream, lunar/mantic releases already include is as well.
- Old behavior will inaccurately print uptime -p for 24h after 31449600 seconds (0 years, 0 weeks).
- With new patch during that time uptime -p will print "52 weeks".
+ 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]
+ [ 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/8827c6763f79f77a126968e200b0e402de7cb749
+ 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
** Patch removed: "uptime_jammy.debdiff"
https://bugs.launchpad.net/ubuntu/+source/procps/+bug/2035061/+attachment/5699852/+files/uptime_jammy.debdiff
** Patch removed: "uptime_focal.debdiff"
https://bugs.launchpad.net/ubuntu/+source/procps/+bug/2035061/+attachment/5699853/+files/uptime_focal.debdiff
** Patch added: "jammy debdiff"
https://bugs.launchpad.net/ubuntu/+source/procps/+bug/2035061/+attachment/5701218/+files/uptime_jammy.debdiff
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, 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
More information about the foundations-bugs
mailing list