Closed
Bug 725754
Opened 13 years ago
Closed 13 years ago
Sometimes the response from a timed-out script will contaminate a future script
Categories
(Remote Protocol :: Marionette, defect)
Remote Protocol
Marionette
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: jgriffin, Unassigned)
Details
This can happen two ways:
1. a JS-test times out, but there is some asynchronous code alive which continues to call ok() or is(), and the result of these get collected by the next JS-test.
2. a call to execute_async_script() times out, causing the session to be stopped and a new session to be started. But, the async script continues to run, and eventually calls marionetteScriptFinished(), which sends the result of that script to the client; this can arrive unexpectedly during another call. For example, I've seen the result of a timed-out execute_async_script() arrive during the next call to start_session(), which causes an error.
To reproduce case #1, you can run the gaia tests. In this case, I get a timeout in browser_window_manager.js, followed by this failure in browser_dialer_keypad.js:
AssertionError: 2 tests failed:
TEST-UNEXPECTED-FAIL | 1 app running
TEST-UNEXPECTED-FAIL | Gallery closed
Note these errors are actually generated by browser_window_manager.js.
Case #2 is harder to reproduce, but I've seen it a number of times.
I think we need to start tagging our script executions with an id in the server, and ignore any attempts to send a response (or call 'is' or 'ok' or 'finish') from scripts with id's that aren't the active id.
| Reporter | ||
Comment 1•13 years ago
|
||
This has been resolved, primarily with https://github.com/jonallengriffin/mozilla-central/commit/200cef67cb9205b72dd01b4fe408693ebb49c744
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Updated•2 years ago
|
Product: Testing → Remote Protocol
You need to log in
before you can comment on or make changes to this bug.
Description
•