-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Intermittent CRASH in /IndexedDB/worker-termination-aborts-upgrade.window.html #41918
Copy link
Copy link
Closed
Closed
Copy link
Labels
A-content/indexeddbIndexedDB implementation issues.IndexedDB implementation issues.I-intermittentProblem reproduces intermittently.Problem reproduces intermittently.I-panicServo encounters a panic.Servo encounters a panic.
Description
The log is a bit long, but first part is just async webdriver script execution command. The real panic is in Rust part in the end.
Stable unexpected results (1):
▶ CRASH [expected OK] /IndexedDB/worker-termination-aborts-upgrade.window.html
│ → Traceback (most recent call last):
│ → File "/home/runner/work/servo/servo/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py", line 1146, in run_func
│ → self.result = True, self.func(self.protocol, self.url, self.timeout)
│ → ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
│ → File "/home/runner/work/servo/servo/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py", line 1243, in do_testharness
│ → raw_results = protocol.testdriver.run(url, self.script_resume, test_window)
│ → ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
│ → File "/home/runner/work/servo/servo/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py", line 687, in run
│ → test_driver_message = self.get_next_message(url, script_resume, test_window)
│ → ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
│ → File "/home/runner/work/servo/servo/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py", line 731, in get_next_message
│ → return self._get_next_message_classic(url, script_resume)
│ → ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
│ → File "/home/runner/work/servo/servo/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py", line 738, in _get_next_message_classic
│ → return self.parent.base.execute_script(script_resume, asynchronous=True, args=[strip_server(url)])
│ → ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
│ → File "/home/runner/work/servo/servo/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py", line 80, in execute_script
│ → return method(script, args=args)
│ → ^^^^^^^^^^^^^^^^^^^^^^^^^
│ → File "/home/runner/work/servo/servo/tests/wpt/tests/tools/webdriver/webdriver/client.py", line 774, in execute_async_script
│ → return self.send_session_command("POST", "execute/async", body)
│ → ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
│ → File "/home/runner/work/servo/servo/tests/wpt/tests/tools/webdriver/webdriver/client.py", line 644, in send_session_command
│ → return self.send_command(method, url, body, timeout)
│ → ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
│ → File "/home/runner/work/servo/servo/tests/wpt/tests/tools/webdriver/webdriver/client.py", line 582, in send_command
│ → response = self.transport.send(
│ → ^^^^^^^^^^^^^^^^^^^^
│ → File "/home/runner/work/servo/servo/tests/wpt/tests/tools/webdriver/webdriver/transport.py", line 230, in send
│ → response = self._request(method, uri, payload, headers, timeout=timeout)
│ → ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
│ → File "/home/runner/work/servo/servo/tests/wpt/tests/tools/webdriver/webdriver/transport.py", line 265, in _request
│ → response = self.connection.getresponse()
│ → ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
│ → File "/opt/hostedtoolcache/Python/3.11.14/x64/lib/python3.11/http/client.py", line 1395, in getresponse
│ → response.begin()
│ → File "/opt/hostedtoolcache/Python/3.11.14/x64/lib/python3.11/http/client.py", line 325, in begin
│ → version, status, reason = self._read_status()
│ → ^^^^^^^^^^^^^^^^^^^
│ → File "/opt/hostedtoolcache/Python/3.11.14/x64/lib/python3.11/http/client.py", line 294, in _read_status
│ → raise RemoteDisconnected("Remote end closed connection without"
│ → http.client.RemoteDisconnected: Remote end closed connection without response
│
│ A pending open request should have a pending upgrade. (thread IndexedDBManager, at components/storage/indexeddb/mod.rs:295)
│ 0: servoshell::backtrace::print
│ 1: servoshell::panic_hook::panic_hook
│ 2: std::panicking::panic_with_hook
│ 3: std::panicking::panic_handler::{{closure}}
│ 4: std::sys::backtrace::__rust_end_short_backtrace
│ 5: __rustc::rust_begin_unwind
│ 6: core::panicking::panic_fmt
│ 7: storage::indexeddb::OpenRequest::abort
│ 8: storage::indexeddb::IndexedDBManager::handle_sync_operation
│ 9: storage::indexeddb::IndexedDBManager::start
│ 10: std::sys::backtrace::__rust_begin_short_backtrace
│ 11: core::ops::function::FnOnce::call_once{{vtable.shim}}
│ 12: std::sys::thread::unix::Thread::new::thread_start
│ 13: <unknown>
└ 14: <unknown>
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-content/indexeddbIndexedDB implementation issues.IndexedDB implementation issues.I-intermittentProblem reproduces intermittently.Problem reproduces intermittently.I-panicServo encounters a panic.Servo encounters a panic.