Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upFixed panic in ActiveTimers.set_timeout_or_interval. #8175
Conversation
|
I'm not entirely sure we should execute script after the pipeline is frozen, but I don't really know anything about freezing. |
That was my intuitive understanding of freezing as well, hence the assertion. However, now that I've run into the panic — after merging, to my shame — I can't find anything to support that intuition. The documentation for the relevant message says "Notifies script task to suspend all its timers". |
|
Our freezing implementation is extremely incomplete, unfortunately :( |
|
We clearly need to sort out what freezing means in practice, but obviously that's not happening right now. This change improves the status quo. |
|
|
Fixed panic in ActiveTimers.set_timeout_or_interval. `ActiveTimers.set_timeout_or_interval` asserts that the pipeline is not currently frozen. Apparently that is too strict. When pending network requests complete after a pipeline is frozen, scripts may be executed and a timer scheduled. With these changes scheduling a timer while the pipeline is frozen behaves as if the timer was scheduled at the time the pipeline was frozen. To reproduce the panic 1. `./mach run -r http://google.com`, 2. immediately click on any link and 3. wait for the panic. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8175) <!-- Reviewable:end -->
|
|
Correct undisciplined rebase. (Closes #8583.) I screwed up the rebase on top of #8175; sorry to waste your time with this, @jdm. :( <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8591) <!-- Reviewable:end -->
benschulz commentedOct 24, 2015
ActiveTimers.set_timeout_or_intervalasserts that the pipeline is not currently frozen. Apparently that is too strict. When pending network requests complete after a pipeline is frozen, scripts may be executed and a timer scheduled.With these changes scheduling a timer while the pipeline is frozen behaves as if the timer was scheduled at the time the pipeline was frozen.
To reproduce the panic
./mach run -r http://google.com,