Open Bug 2003243 Opened 1 month ago Updated 6 days ago

Intermittent /webdriver/tests/bidi/browsing_context/download_will_begin/download_will_begin.py | test_unsubscribe - teardown error: webdriver.error.TimeoutException: timeout (500): Timed out after 2.0 seconds with message: Did not receive at least 1 BiDi

Categories

(Remote Protocol :: WebDriver BiDi, defect, P5)

defect

Tracking

(firefox-esr115 unaffected, firefox-esr140 unaffected, firefox145 unaffected, firefox146 unaffected, firefox147 affected, firefox148 affected)

Tracking Status
firefox-esr115 --- unaffected
firefox-esr140 --- unaffected
firefox145 --- unaffected
firefox146 --- unaffected
firefox147 --- affected
firefox148 --- affected

People

(Reporter: intermittent-bug-filer, Unassigned)

References

(Regression)

Details

(Keywords: intermittent-failure, regression)

Note that the above is for a debug build which usually runs slower. So maybe waiting 2s is not long enough and we may need to consider the multiplier. But lets see how often it actually fails.

Here the exact lines:
https://treeherder.mozilla.org/logviewer?job_id=537828759&repo=mozilla-central&task=AKAoU9-DQXO9yBMHbxt2pQ.0&lineNumber=5637-5678

[task 2025-11-28T17:06:33.369+00:00] 17:06:33     INFO - STDOUT: ==================================== ERRORS ====================================
[task 2025-11-28T17:06:33.370+00:00] 17:06:33     INFO - STDOUT: ____________________ ERROR at teardown of test_unsubscribe _____________________
[task 2025-11-28T17:06:33.370+00:00] 17:06:33     INFO - STDOUT: bidi_session = <webdriver.bidi.client.BidiSession object at 0x1067fdb90>
[task 2025-11-28T17:06:33.371+00:00] 17:06:33     INFO - STDOUT: subscribe_events = <function subscribe_events.<locals>.subscribe_events at 0x1068a4360>
[task 2025-11-28T17:06:33.371+00:00] 17:06:33     INFO - STDOUT:     @pytest_asyncio.fixture
[task 2025-11-28T17:06:33.372+00:00] 17:06:33     INFO - STDOUT:     async def expect_download_end(bidi_session, subscribe_events):
[task 2025-11-28T17:06:33.372+00:00] 17:06:33     INFO - STDOUT:         await subscribe_events(events=[DOWNLOAD_END])
[task 2025-11-28T17:06:33.373+00:00] 17:06:33     INFO - STDOUT:     
[task 2025-11-28T17:06:33.373+00:00] 17:06:33     INFO - STDOUT:         download_end_events = []
[task 2025-11-28T17:06:33.374+00:00] 17:06:33     INFO - STDOUT:     
[task 2025-11-28T17:06:33.374+00:00] 17:06:33     INFO - STDOUT:         async def on_event(method, data):
[task 2025-11-28T17:06:33.375+00:00] 17:06:33     INFO - STDOUT:             download_end_events.append(data)
[task 2025-11-28T17:06:33.375+00:00] 17:06:33     INFO - STDOUT:     
[task 2025-11-28T17:06:33.376+00:00] 17:06:33     INFO - STDOUT:         remove_listener = bidi_session.add_event_listener(DOWNLOAD_END, on_event)
[task 2025-11-28T17:06:33.376+00:00] 17:06:33     INFO - STDOUT:     
[task 2025-11-28T17:06:33.377+00:00] 17:06:33     INFO - STDOUT:         expected_events = 0
[task 2025-11-28T17:06:33.377+00:00] 17:06:33     INFO - STDOUT:         def _expect_download_end(count):
[task 2025-11-28T17:06:33.378+00:00] 17:06:33     INFO - STDOUT:             nonlocal expected_events
[task 2025-11-28T17:06:33.378+00:00] 17:06:33     INFO - STDOUT:             expected_events = count
[task 2025-11-28T17:06:33.379+00:00] 17:06:33     INFO - STDOUT:     
[task 2025-11-28T17:06:33.379+00:00] 17:06:33     INFO - STDOUT:         yield _expect_download_end
[task 2025-11-28T17:06:33.379+00:00] 17:06:33     INFO - STDOUT:     
[task 2025-11-28T17:06:33.380+00:00] 17:06:33     INFO - STDOUT: >       await wait_for_bidi_events(bidi_session, download_end_events, expected_events, timeout=2)
[task 2025-11-28T17:06:33.380+00:00] 17:06:33     INFO - STDOUT: _expect_download_end = <function expect_download_end.<locals>._expect_download_end at 0x1068a45e0>
[task 2025-11-28T17:06:33.381+00:00] 17:06:33     INFO - STDOUT: bidi_session = <webdriver.bidi.client.BidiSession object at 0x1067fdb90>
[task 2025-11-28T17:06:33.381+00:00] 17:06:33     INFO - STDOUT: download_end_events = []
[task 2025-11-28T17:06:33.382+00:00] 17:06:33     INFO - STDOUT: expected_events = 1
[task 2025-11-28T17:06:33.382+00:00] 17:06:33     INFO - STDOUT: on_event   = <function expect_download_end.<locals>.on_event at 0x1068a4220>
[task 2025-11-28T17:06:33.383+00:00] 17:06:33     INFO - STDOUT: remove_listener = <function BidiSession.add_event_listener.<locals>.<lambda> at 0x1068a4400>
[task 2025-11-28T17:06:33.383+00:00] 17:06:33     INFO - STDOUT: subscribe_events = <function subscribe_events.<locals>.subscribe_events at 0x1068a4360>
[task 2025-11-28T17:06:33.384+00:00] 17:06:33     INFO - STDOUT: tests/web-platform/tests/webdriver/tests/bidi/browsing_context/download_will_begin/download_will_begin.py
[task 2025-11-28T17:06:33.384+00:00] 17:06:33     INFO - STDOUT: :38: 
[task 2025-11-28T17:06:33.385+00:00] 17:06:33     INFO - STDOUT: _ _ _ _ _ _ 

This was most likely regressed by bug 1999473.

:jdescottes, since you are the author of the regressor, bug 1999473, could you take a look?

For more information, please visit BugBot documentation.

Flags: needinfo?(jdescottes)

Not much to add, we can add the timeout_multiplier if needed...

Flags: needinfo?(jdescottes)

Set release status flags based on info from the regressing bug 1999473

You need to log in before you can comment on or make changes to this bug.