Escalated to Bugzilla from IssueTracker
Created attachment 117045 [details] draft version of the patch that backported from RHEL 4. Well, the issue makes sense. Just did a quick port from RHEL 4 and will test it out tomorrow when I find the proper machines (ia64 and x86_64) to work with.
Created attachment 117068 [details] Test program from Thomas Walker compile with g++ -m32 -o sys32_time_test sys32_time_test.C
Test the draft patch on x86_64 machine and it seems to work fine by putting sys32_time_test in a forever loop: Without the patch, occasionally (depending on timer interrupts) the test program catches the offset as: System time(gettimeofday): 1122044166 sec, 0 milliseconds System time(time): 1122044165 sec 1 times of 5626349 With the patch the loop could run forever with the following output: We hit a problem 0 times of 10000000
Test program and new kernel gets kicked off on an IA64 machine now - looks fine. Will let it loop for a while. If something is not right, I'll report back. Otherwise, please assume we're all set for this issue.
A fix for this problem has just been committed to the RHEL3 U7 patch pool this evening (in kernel version 2.4.21-37.5.EL).
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2006-0144.html