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)

defect
Not set
normal

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.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.