Closed Bug 2030392 Opened 4 months ago Closed 4 months ago

Intermittent testing/enterprise/test_felt_browser_token_refresh.py | single tracking bug

Categories

(Enterprise Products :: Firefox, defect, P5)

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: intermittent-bug-filer, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: intermittent-failure, intermittent-testcase, Whiteboard: [collect_confirm_failure])

Attachments

(2 files)

Flaky, either "TEST-UNEXPECTED-ERROR | testing/enterprise/test_felt_browser_token_refresh.py BrowserTokenRefresh.test_forced_signout_on_401" or the previous one. It also makes the next tests fail

The browser is closing here faster than marionete finishes the send_async_script internally
https://searchfox.org/enterprise-main/rev/8ad7bae3daf8c761d6611955fb03602820ef04a3/testing/enterprise/test_felt_browser_token_refresh.py#44

An exception is thrown and then the flag "self._manually_closed_child = True" is not set, which causes marionette to try to "close twice" the child browser. the solution is just to catch the exception and proceed with the test. Here the log with the issues

task 2026-04-08T15:13:17.988+00:00] 15:13:17     INFO -  1775661197987	Marionette	DEBUG	1 <- [1,64,{"error":"no such window","message":"Browsing context has been discarded","stacktrace":"RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8\nWebDriverError@chrome://remote/content/shared/webdriver/Er ... ote/content/marionette/server.sys.mjs:263:9\n_onJSONObjectReady/<@chrome://remote/content/marionette/transport.sys.mjs:494:20\n"},null]
[task 2026-04-08T15:13:17.989+00:00] 15:13:17     INFO -  1775661197989	Marionette	DEBUG	1 -> [0,65,"Marionette:SetContext",{"value":"content"}]
[task 2026-04-08T15:13:17.990+00:00] 15:13:17     INFO -  1775661197990	Marionette	DEBUG	1 <- [1,65,null,{"value":null}]
[task 2026-04-08T15:13:17.991+00:00] 15:13:17     INFO -  Failed to gather test failure debug: Browsing context has been discarded
[task 2026-04-08T15:13:17.991+00:00] 15:13:17     INFO -  stacktrace:
[task 2026-04-08T15:13:17.991+00:00] 15:13:17     INFO -  	RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
[task 2026-04-08T15:13:17.991+00:00] 15:13:17     INFO -  	WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:203:5
[task 2026-04-08T15:13:17.992+00:00] 15:13:17     INFO -  	NoSuchWindowError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:799:5
[task 2026-04-08T15:13:17.992+00:00] 15:13:17     INFO -  	assert.that/<@chrome://remote/content/shared/webdriver/Assert.sys.mjs:581:13
[task 2026-04-08T15:13:17.992+00:00] 15:13:17     INFO -  	assert.open@chrome://remote/content/shared/webdriver/Assert.sys.mjs:169:4
[task 2026-04-08T15:13:17.992+00:00] 15:13:17     INFO -  	takeScreenshot@chrome://remote/content/marionette/driver.sys.mjs:3820:17
[task 2026-04-08T15:13:17.993+00:00] 15:13:17     INFO -  	dispatch@chrome://remote/content/marionette/server.sys.mjs:314:47
[task 2026-04-08T15:13:17.993+00:00] 15:13:17     INFO -  	execute@chrome://remote/content/marionette/server.sys.mjs:289:16
[task 2026-04-08T15:13:17.993+00:00] 15:13:17     INFO -  	onPacket/<@chrome://remote/content/marionette/server.sys.mjs:262:20
[task 2026-04-08T15:13:17.994+00:00] 15:13:17     INFO -  	onPacket@chrome://remote/content/marionette/server.sys.mjs:263:9
[task 2026-04-08T15:13:17.994+00:00] 15:13:17     INFO -  	_onJSONObjectReady/<@chrome://remote/content/marionette/transport.sys.mjs:494:20
[task 2026-04-08T15:13:17.994+00:00] 15:13:17    ERROR -  TEST-UNEXPECTED-ERROR | testing/enterprise/test_felt_browser_token_refresh.py BrowserTokenRefresh.test_forced_signout_on_401 | marionette_driver.errors.NoSuchWindowException: Browsing context has been discarded
[task 2026-04-08T15:13:17.995+00:00] 15:13:17     INFO -  stacktrace:
[task 2026-04-08T15:13:17.995+00:00] 15:13:17     INFO -  	RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
[task 2026-04-08T15:13:17.995+00:00] 15:13:17     INFO -  	WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:203:5
[task 2026-04-08T15:13:17.995+00:00] 15:13:17     INFO -  	NoSuchWindowError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:799:5
[task 2026-04-08T15:13:17.996+00:00] 15:13:17     INFO -  	assert.that/<@chrome://remote/content/shared/webdriver/Assert.sys.mjs:581:13
[task 2026-04-08T15:13:17.996+00:00] 15:13:17     INFO -  	assert.open@chrome://remote/content/shared/webdriver/Assert.sys.mjs:169:4
[task 2026-04-08T15:13:17.996+00:00] 15:13:17     INFO -  	#execute@chrome://remote/content/marionette/driver.sys.mjs:3922:17
[task 2026-04-08T15:13:17.996+00:00] 15:13:17     INFO -  	executeAsyncScript@chrome://remote/content/marionette/driver.sys.mjs:1019:25
[task 2026-04-08T15:13:17.997+00:00] 15:13:17     INFO -  	dispatch@chrome://remote/content/marionette/server.sys.mjs:314:47
[task 2026-04-08T15:13:17.997+00:00] 15:13:17     INFO -  	execute@chrome://remote/content/marionette/server.sys.mjs:289:16
[task 2026-04-08T15:13:17.998+00:00] 15:13:17     INFO -  	onPacket/<@chrome://remote/content/marionette/server.sys.mjs:262:20
[task 2026-04-08T15:13:17.998+00:00] 15:13:17     INFO -  	onPacket@chrome://remote/content/marionette/server.sys.mjs:263:9
[task 2026-04-08T15:13:17.998+00:00] 15:13:17     INFO -  	_onJSONObjectReady/<@chrome://remote/content/marionette/transport.sys.mjs:494:20
[task 2026-04-08T15:13:17.998+00:00] 15:13:17     INFO -  Traceback (most recent call last):
[task 2026-04-08T15:13:17.999+00:00] 15:13:17     INFO -    File "D:\task_177565771366936\build\venv\Lib\site-packages\marionette_harness\marionette_test\testcases.py", line 192, in run
[task 2026-04-08T15:13:17.999+00:00] 15:13:17     INFO -      testMethod()
[task 2026-04-08T15:13:17.999+00:00] 15:13:17     INFO -    File "D:\task_177565771366936\build\tests\marionette\tests\testing\enterprise\test_felt_browser_token_refresh.py", line 71, in test_forced_signout_on_401
[task 2026-04-08T15:13:17.999+00:00] 15:13:17     INFO -      self.assert_browser_closes_on_401()
[task 2026-04-08T15:13:18.000+00:00] 15:13:18     INFO -    File "D:\task_177565771366936\build\tests\marionette\tests\testing\enterprise\test_felt_browser_token_refresh.py", line 44, in assert_browser_closes_on_401
[task 2026-04-08T15:13:18.000+00:00] 15:13:18     INFO -      self.get_logged_in_user_info(env=Environment.FIREFOX)
[task 2026-04-08T15:13:18.000+00:00] 15:13:18     INFO -    File "D:\task_177565771366936\build\tests\marionette\tests\testing\enterprise\base_test.py", line 175, in get_logged_in_user_info
[task 2026-04-08T15:13:18.000+00:00] 15:13:18     INFO -      user = driver.execute_async_script(
[task 2026-04-08T15:13:18.001+00:00] 15:13:18     INFO -             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[task 2026-04-08T15:13:18.001+00:00] 15:13:18     INFO -    File "D:\task_177565771366936\build\venv\Lib\site-packages\marionette_driver\marionette.py", line 1959, in execute_async_script
[task 2026-04-08T15:13:18.001+00:00] 15:13:18     INFO -      rv = self._send_message("WebDriver:ExecuteAsyncScript", body, key="value")
[task 2026-04-08T15:13:18.002+00:00] 15:13:18     INFO -           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[task 2026-04-08T15:13:18.002+00:00] 15:13:18     INFO -    File "D:\task_177565771366936\build\venv\Lib\site-packages\marionette_driver\decorators.py", line 24, in _
[task 2026-04-08T15:13:18.003+00:00] 15:13:18     INFO -      return func(*args, **kwargs)
[task 2026-04-08T15:13:18.003+00:00] 15:13:18     INFO -             ^^^^^^^^^^^^^^^^^^^^^
[task 2026-04-08T15:13:18.003+00:00] 15:13:18     INFO -    File "D:\task_177565771366936\build\venv\Lib\site-packages\marionette_driver\marionette.py", line 780, in _send_message
[task 2026-04-08T15:13:18.003+00:00] 15:13:18     INFO -      self._handle_error(err)
[task 2026-04-08T15:13:18.004+00:00] 15:13:18     INFO -    File "D:\task_177565771366936\build\venv\Lib\site-packages\marionette_driver\marionette.py", line 792, in _handle_error
[task 2026-04-08T15:13:18.004+00:00] 15:13:18     INFO -      raise errors.lookup(error)(message, stacktrace=stacktrace)
[task 2026-04-08T15:13:18.004+00:00] 15:13:18     INFO -  TEST-INFO took 13278ms
[task 2026-04-08T15:13:18.004+00:00] 15:13:18     INFO -  Closing browser
[task 2026-04-08T15:13:18.004+00:00] 15:13:18     INFO -  1775661197997	Marionette	DEBUG	1 -> [0,66,"Marionette:GetContext",{}]
[task 2026-04-08T15:13:18.005+00:00] 15:13:18     INFO -  1775661197998	Marionette	DEBUG	1 <- [1,66,null,{"value":"content"}]
[task 2026-04-08T15:13:18.005+00:00] 15:13:18     INFO -  1775661197999	Marionette	DEBUG	1 -> [0,67,"Marionette:SetContext",{"value":"chrome"}]
[task 2026-04-08T15:13:18.005+00:00] 15:13:18     INFO -  1775661198000	Marionette	DEBUG	1 <- [1,67,null,{"value":null}]
[task 2026-04-08T15:13:18.006+00:00] 15:13:18     INFO -  1775661198003	Marionette	DEBUG	1 -> [0,68,"WebDriver:TakeScreenshot",{"id":null,"full":true,"hash":false,"scroll":true}]
[task 2026-04-08T15:13:18.006+00:00] 15:13:18     INFO -  1775661198005	Marionette	DEBUG	1 <- [1,68,{"error":"no such window","message":"Browsing context has been discarded","stacktrace":"RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8\nWebDriverError@chrome://remote/content/shared/webdriver/Er ... ote/content/marionette/server.sys.mjs:263:9\n_onJSONObjectReady/<@chrome://remote/content/marionette/transport.sys.mjs:494:20\n"},null]
[task 2026-04-08T15:13:18.006+00:00] 15:13:18     INFO -  1775661198007	Marionette	DEBUG	1 -> [0,69,"Marionette:SetContext",{"value":"content"}]
[task 2026-04-08T15:13:18.006+00:00] 15:13:18     INFO -  1775661198007	Marionette	DEBUG	1 <- [1,69,null,{"value":null}]
[task 2026-04-08T15:13:18.008+00:00] 15:13:18     INFO -  Failed to gather test failure debug: Browsing context has been discarded
[task 2026-04-08T15:13:18.008+00:00] 15:13:18     INFO -  stacktrace:
[task 2026-04-08T15:13:18.009+00:00] 15:13:18     INFO -  	RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
[task 2026-04-08T15:13:18.009+00:00] 15:13:18     INFO -  	WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:203:5
[task 2026-04-08T15:13:18.009+00:00] 15:13:18     INFO -  	NoSuchWindowError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:799:5
[task 2026-04-08T15:13:18.009+00:00] 15:13:18     INFO -  	assert.that/<@chrome://remote/content/shared/webdriver/Assert.sys.mjs:581:13
[task 2026-04-08T15:13:18.010+00:00] 15:13:18     INFO -  	assert.open@chrome://remote/content/shared/webdriver/Assert.sys.mjs:169:4
[task 2026-04-08T15:13:18.010+00:00] 15:13:18     INFO -  	takeScreenshot@chrome://remote/content/marionette/driver.sys.mjs:3820:17
[task 2026-04-08T15:13:18.010+00:00] 15:13:18     INFO -  	dispatch@chrome://remote/content/marionette/server.sys.mjs:314:47
[task 2026-04-08T15:13:18.010+00:00] 15:13:18     INFO -  	execute@chrome://remote/content/marionette/server.sys.mjs:289:16
[task 2026-04-08T15:13:18.011+00:00] 15:13:18     INFO -  	onPacket/<@chrome://remote/content/marionette/server.sys.mjs:262:20
[task 2026-04-08T15:13:18.011+00:00] 15:13:18     INFO -  	onPacket@chrome://remote/content/marionette/server.sys.mjs:263:9
[task 2026-04-08T15:13:18.011+00:00] 15:13:18     INFO -  	_onJSONObjectReady/<@chrome://remote/content/marionette/transport.sys.mjs:494:20
[task 2026-04-08T15:13:18.015+00:00] 15:13:18     INFO -  test_end for testing/enterprise/test_felt_browser_token_refresh.py BrowserTokenRefresh.test_forced_signout_on_401 logged while not in progress. Logged with data: {"message": "ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine", "expected": "PASS", "stack": "Traceback (most recent call last):\n  File \"D:\\task_177565771366936\\build\\venv\\Lib\\site-packages\\marionette_harness\\marionette_test\\testcases.py\", line 225, in run\n    self.tearDown()\n  File \"D:\\task_177565771366936\\build\\tests\\marionette\\tests\\testing\\enterprise\\base_test.py\", line 56, in tearDown\n    self.teardown()\n  File \"D:\\task_177565771366936\\build\\tests\\marionette\\tests\\testing\\enterprise\\felt_tests.py\", line 717, in teardown\n    self._child_driver.set_context(\"chrome\")\n  File \"D:\\task_177565771366936\\build\\venv\\Lib\\site-packages\\marionette_driver\\marionette.py\", line 1603, in set_context\n    self._send_message(\"Marionette:SetContext\", {\"value\": context})\n  File \"D:\\task_177565771366936\\build\\venv\\Lib\\site-packages\\marionette_driver\\decorators.py\", line 34, in _\n    m._handle_socket_failure()\n  File \"D:\\task_177565771366936\\build\\venv\\Lib\\site-packages\\marionette_driver\\marionette.py\", line 824, in _handle_socket_failure\n    raise exc.with_traceback(tb)\n  File \"D:\\task_177565771366936\\build\\venv\\Lib\\site-packages\\marionette_driver\\decorators.py\", line 24, in _\n    return func(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^\n  File \"D:\\task_177565771366936\\build\\venv\\Lib\\site-packages\\marionette_driver\\marionette.py\", line 773, in _send_message\n    msg = self.client.request(name, params)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"D:\\task_177565771366936\\build\\venv\\Lib\\site-packages\\marionette_driver\\transport.py\", line 368, in request\n    return self.receive()\n           ^^^^^^^^^^^^^^\n  File \"D:\\task_177565771366936\\build\\venv\\Lib\\site-packages\\marionette_driver\\transport.py\", line 217, in receive\n    chunk = sock.recv(recv_bytes)\n            ^^^^^^^^^^^^^^^^^^^^^\n", "extra": {"class_name": "test_felt_browser_token_refresh.BrowserTokenRefresh", "method_name": "test_forced_signout_on_401"}, "group": "testing/marionette/harness/marionette_harness/tests/enterprise-tests.toml", "test": "testing/enterprise/test_felt_browser_token_refresh.py BrowserTokenRefresh.test_forced_signout_on_401", "status": "ERROR"}
[task 2026-04-08T15:13:18.016+00:00] 15:13:18     INFO -  1775661198010	Marionette	DEBUG	1 -> [0,70,"WebDriver:DeleteSession",{}]
[task 2026-04-08T15:13:18.016+00:00] 15:13:18     INFO -  1775661198016	Marionette	DEBUG	1 <- [1,70,null,{"value":null}]
[task 2026-04-08T15:13:18.017+00:00] 15:13:18     INFO -  TEST-START | testing/enterprise/test_felt_browser_token_refresh.py BrowserTokenRefresh.test_transparent_token_refresh
[task 2026-04-08T15:13:18.017+00:00] 15:13:18     INFO -  1775661198017	Marionette	DEBUG	Closed connection 1
[task 2026-04-08T15:13:18.108+00:00] 15:13:18     INFO -  1775661198108	Marionette	DEBUG	Accepted connection 2 from 127.0.0.1:53578
[task 2026-04-08T15:13:18.108+00:00] 15:13:18     INFO -  1775661198110	Marionette	DEBUG	2 -> [0,1,"WebDriver:NewSession",{"strictFileInteractability":true}]
[task 2026-04-08T15:13:18.112+00:00] 15:13:18     INFO -  1775661198113	Marionette	DEBUG	Waiting for initial application window
[task 2026-04-08T15:13:18.114+00:00] 15:13:18     INFO -  1775661198114	Marionette	DEBUG	2 <- [1,1,{"error":"session not created","message":"TypeError: can't access property \"document\", window is null","stacktrace":"waitForChromeWindowLoaded@chrome://remote/content/shared/WindowManager.sys.mjs:592:7\nnewSession@chrome://remote/content/marionette/driver.sys.mjs:2597:34\n"},null]
[task 2026-04-08T15:13:18.118+00:00] 15:13:18    ERROR -  TEST-UNEXPECTED-ERROR | testing/enterprise/test_felt_browser_token_refresh.py BrowserTokenRefresh.test_transparent_token_refresh | marionette_driver.errors.SessionNotCreatedException: TypeError: can't access property "document", window is null

Authored by https://github.com/victhorlopez
https://github.com/mozilla/enterprise-firefox/commit/6e2c2173cbd8f5fb0c7516a9a0ac06dd5e6b176a
[enterprise-main] Bug 2030392: handle exception if browser closes faster than marionette request (#718)

Status: NEW → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
See Also: → 2033492

Authored by https://github.com/victhorlopez
https://github.com/mozilla/enterprise-firefox/commit/595f849fb1a4ab88915de9df89c71f93a11df544
[enterprise-main] Bug 2030392: Trigger a fetch policies request with invalid tokens expecting a forced logout on test (#742)

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

Attachment

General

Created:
Updated:
Size: