Bug 7318

Summary: REGRESSION: Timer bug causes gif animation and (html and JS) page forwarding to fail
Product: WebKit Reporter: Jon <jon>
Component: JavaScriptCoreAssignee: Darin Adler <darin>
Severity: Major CC: ap
Priority: P1    
Version: 420+   
Hardware: Macintosh   
OS: OS X 10.4   
Bug Depends on:    
Bug Blocks: 5340    
Description Flags
create new timer each time since CFRunLoopTimerSetNextFireDate is failing mjs: review+

Description Jon 2006-02-16 17:26:33 PST
On my quad, loading the test case for bug 5340 repeatedly will eventually stop the gif animation. When it is frozen, it affects all gif animations, even in other tabs. It also prevents html and JS powered forwarding, such as that happens when trying to go to apple.com/developer. Testing with various people in the IRC channel, and on my iBook 500, seems to indicate that this bug only affects multiprocessor machines over a certain clock rate show this bug. A dual 1.42GHz G4 was reported to exhibit this bug, but a dual 500 and dual 867 didn't. For now I'm assuming this is a timer bug since that seems to be the common element between the affected features, but I could be wrong. 

Essentially, reload the test case until it freezes, then no timers work at all, even for already loaded content.

This affects nightly r12858.
Comment 1 Alexey Proskuryakov 2006-02-17 13:05:54 PST
I'm also seeing this. Not sure if the issues aren't already tracked in bug 5340, though.
Comment 2 Jon 2006-02-17 13:13:43 PST
Based on discussion in #webkit last night it was determined that this is a separate bug. 5340 covers the partial animation of gifs when in different html structures. That bug still exists in 417.8. This bug pertains to the breaking of all gif animation and anything else that relies on a timer in ToT.
Comment 3 Darin Adler 2006-02-18 17:42:27 PST
Damn, must be a bug in my new timer implementation. Gotta see if I can reproduce it.
Comment 4 Darin Adler 2006-02-19 09:55:14 PST
I can reproduce this to. By adding logging, I've determined the problem is with the Macintosh implementation of the single shared timer. I'm going to change how that mechanism works to see if I can fix it.
Comment 5 Darin Adler 2006-02-19 10:12:38 PST
Created attachment 6611 [details]
create new timer each time since CFRunLoopTimerSetNextFireDate is failing
Comment 6 Maciej Stachowiak 2006-02-20 00:18:55 PST
Comment on attachment 6611 [details]
create new timer each time since CFRunLoopTimerSetNextFireDate is failing