Issue 6061: time.clock(): overflow in programs that run for very long (original) (raw)

Created on 2009-05-19 06:42 by tom65536, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
bug.py tom65536,2009-05-19 06:42 Program that reproduces the bug.
Messages (4)
msg88069 - (view) Author: Thomas Reiter (tom65536) Date: 2009-05-19 06:42
On a 64-bit Linux machine the attached program generates the following (shortened) output: $ python bug.py ... after 2145.49s: after 2145.82s: after 2146.14s: after 2146.47s: after 2146.80s: after 2147.13s: after 2147.45s: after -2147.19s: Here's your bug --------------------------------------------- $ uname -a Linux XXXX 2.6.18-92.1.22.el5 #1 SMP Tue Dec 16 06:45:03 EST 2008 x86_64 x86_64 x86_64 GNU/Linux $ python -V Python 2.6
msg88070 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-05-19 06:56
time.clock() is a simple wrapper around the C stdlib clock() function. As the clock() man page says: « Note that the time can wrap around. On a 32-bit system where CLOCKS_PER_SEC equals 1000000 this function will return the same value approximately every 72 minutes. » Is it a 32-bit or 64-bit Python build? (you might have a 32-bit build on a 64-bit system) If it is a 64-bit build, what are sizeof(clock_t) and CLOCKS_PER_SEC on a your system? You can compile the following small C program to get the answer. #include <stdio.h> #include <time.h> int main(int argc, char **argv) { printf("sizeof(clock_t)=%d, CLOCKS_PER_SEC=%d\n", sizeof(clock_t), CLOCKS_PER_SEC); return 0; }
msg88071 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-05-19 07:01
It is very likely you have a 32-bit Python build because: >>> 2**32/1000000. 4294.9672959999998 and 4294 is exactly the number of seconds by which your clock() value wraps around.
msg88074 - (view) Author: Thomas Reiter (tom65536) Date: 2009-05-19 07:38
That version of Python is linked against 32-bit libc. Point of overflow corresponds to 2^31 us.
History
Date User Action Args
2022-04-11 14:56:49 admin set github: 50311
2009-05-19 07:38:25 tom65536 set status: open -> closedmessages: +
2009-05-19 07:01:12 pitrou set messages: +
2009-05-19 06:57:00 pitrou set nosy: + pitroumessages: +
2009-05-19 06:43:00 tom65536 create