Anca/ Add searchmode on engine removal test #898
firefoxci-taskcluster / CI Smoke Tests
failed
Nov 17, 2025 in 48m 28s
FirefoxCI (pull_request)
Runs smoke test suite
Details
View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster
Task Status
Started: 2025-11-17T15:46:45.929Z
Resolved: 2025-11-17T16:17:59.788Z
Task Execution Time: 31 minutes, 13 seconds, 859 milliseconds
Task Status: failed
Reason Resolved: failed
RunId: 0
Artifacts
- public/logs/live_backing.log
- public/logs/live.log
- public/results/assets/style.css
- public/results/report_headed.html
- public/results/report_headed.json
- public/results/report.html
- public/results/report.json
[taskcluster 2025-11-17T15:46:46.120Z] Worker Type (mozilla-t/t-linux-2204-wayland) settings:
[taskcluster 2025-11-17T15:46:46.120Z] {
[taskcluster 2025-11-17T15:46:46.120Z] "config": {
[taskcluster 2025-11-17T15:46:46.120Z] "deploymentId": ""
[taskcluster 2025-11-17T15:46:46.120Z] },
[taskcluster 2025-11-17T15:46:46.120Z] "generic-worker": {
[taskcluster 2025-11-17T15:46:46.120Z] "engine": "multiuser",
[taskcluster 2025-11-17T15:46:46.120Z] "go-arch": "amd64",
[taskcluster 2025-11-17T15:46:46.120Z] "go-os": "linux",
[taskcluster 2025-11-17T15:46:46.120Z] "go-version": "go1.22.2",
[taskcluster 2025-11-17T15:46:46.120Z] "release": "https://github.com/taskcluster/taskcluster/releases/tag/v64.3.0",
[taskcluster 2025-11-17T15:46:46.120Z] "revision": "b66b6614b9b79077f1bfc78f97afb8c25c0c4b30",
[taskcluster 2025-11-17T15:46:46.120Z] "source": "https://github.com/taskcluster/taskcluster/commits/b66b6614b9b79077f1bfc78f97afb8c25c0c4b30",
[taskcluster 2025-11-17T15:46:46.120Z] "version": "64.3.0"
[taskcluster 2025-11-17T15:46:46.120Z] },
[taskcluster 2025-11-17T15:46:46.120Z] "image": "projects/taskcluster-imaging/global/images/gw-fxci-gcp-l1-gui-googlecompute-2024-08-22t22-48-09z",
[taskcluster 2025-11-17T15:46:46.120Z] "instance-id": "5072796789899721850",
[taskcluster 2025-11-17T15:46:46.120Z] "instance-type": "projects/887720501152/machineTypes/c2-standard-4",
[taskcluster 2025-11-17T15:46:46.120Z] "local-ipv4": "10.128.2.125",
[taskcluster 2025-11-17T15:46:46.120Z] "project-id": "fxci-production-level1-workers",
...(15367 lines hidden)...
[task 2025-11-17T16:17:58.681Z] process = <Popen: returncode: 1 args: ['/home/task_176339428251060/.local/share/virtua...>
[task 2025-11-17T16:17:58.681Z] stdout = b'', stderr = None, retcode = 1
[task 2025-11-17T16:17:58.681Z]
[task 2025-11-17T16:17:58.681Z] def run(*popenargs,
[task 2025-11-17T16:17:58.681Z] input=None, capture_output=False, timeout=None, check=False, **kwargs):
[task 2025-11-17T16:17:58.681Z] """Run command with arguments and return a CompletedProcess instance.
[task 2025-11-17T16:17:58.681Z]
[task 2025-11-17T16:17:58.681Z] The returned instance will have attributes args, returncode, stdout and
[task 2025-11-17T16:17:58.681Z] stderr. By default, stdout and stderr are not captured, and those attributes
[task 2025-11-17T16:17:58.681Z] will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
[task 2025-11-17T16:17:58.681Z] or pass capture_output=True to capture both.
[task 2025-11-17T16:17:58.682Z]
[task 2025-11-17T16:17:58.682Z] If check is True and the exit code was non-zero, it raises a
[task 2025-11-17T16:17:58.682Z] CalledProcessError. The CalledProcessError object will have the return code
[task 2025-11-17T16:17:58.682Z] in the returncode attribute, and output & stderr attributes if those streams
[task 2025-11-17T16:17:58.682Z] were captured.
[task 2025-11-17T16:17:58.682Z]
[task 2025-11-17T16:17:58.682Z] If timeout is given, and the process takes too long, a TimeoutExpired
[task 2025-11-17T16:17:58.682Z] exception will be raised.
[task 2025-11-17T16:17:58.682Z]
[task 2025-11-17T16:17:58.682Z] There is an optional argument "input", allowing you to
[task 2025-11-17T16:17:58.682Z] pass bytes or a string to the subprocess's stdin. If you use this argument
[task 2025-11-17T16:17:58.682Z] you may not also use the Popen constructor's "stdin" argument, as
[task 2025-11-17T16:17:58.682Z] it will be used internally.
[task 2025-11-17T16:17:58.682Z]
[task 2025-11-17T16:17:58.682Z] By default, all communication is in bytes, and therefore any "input" should
[task 2025-11-17T16:17:58.682Z] be bytes, and the stdout and stderr will be bytes. If in text mode, any
[task 2025-11-17T16:17:58.682Z] "input" should be a string, and stdout and stderr will be strings decoded
[task 2025-11-17T16:17:58.682Z] according to locale encoding, or by "encoding" if set. Text mode is
[task 2025-11-17T16:17:58.682Z] triggered by setting any of text, encoding, errors or universal_newlines.
[task 2025-11-17T16:17:58.682Z]
[task 2025-11-17T16:17:58.682Z] The other arguments are the same as for the Popen constructor.
[task 2025-11-17T16:17:58.682Z] """
[task 2025-11-17T16:17:58.682Z] if input is not None:
[task 2025-11-17T16:17:58.682Z] if kwargs.get('stdin') is not None:
[task 2025-11-17T16:17:58.682Z] raise ValueError('stdin and input arguments may not both be used.')
[task 2025-11-17T16:17:58.682Z] kwargs['stdin'] = PIPE
[task 2025-11-17T16:17:58.682Z]
[task 2025-11-17T16:17:58.682Z] if capture_output:
[task 2025-11-17T16:17:58.682Z] if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
[task 2025-11-17T16:17:58.682Z] raise ValueError('stdout and stderr arguments may not be used '
[task 2025-11-17T16:17:58.682Z] 'with capture_output.')
[task 2025-11-17T16:17:58.682Z] kwargs['stdout'] = PIPE
[task 2025-11-17T16:17:58.682Z] kwargs['stderr'] = PIPE
[task 2025-11-17T16:17:58.682Z]
[task 2025-11-17T16:17:58.682Z] with Popen(*popenargs, **kwargs) as process:
[task 2025-11-17T16:17:58.682Z] try:
[task 2025-11-17T16:17:58.682Z] stdout, stderr = process.communicate(input, timeout=timeout)
[task 2025-11-17T16:17:58.682Z] except TimeoutExpired as exc:
[task 2025-11-17T16:17:58.682Z] process.kill()
[task 2025-11-17T16:17:58.682Z] if _mswindows:
[task 2025-11-17T16:17:58.682Z] # Windows accumulates the output in a single blocking
[task 2025-11-17T16:17:58.683Z] # read() call run on child threads, with the timeout
[task 2025-11-17T16:17:58.683Z] # being done in a join() on those threads. communicate()
[task 2025-11-17T16:17:58.683Z] # _after_ kill() is required to collect that and add it
[task 2025-11-17T16:17:58.683Z] # to the exception.
[task 2025-11-17T16:17:58.683Z] exc.stdout, exc.stderr = process.communicate()
[task 2025-11-17T16:17:58.683Z] else:
[task 2025-11-17T16:17:58.683Z] # POSIX _communicate already populated the output so
[task 2025-11-17T16:17:58.683Z] # far into the TimeoutExpired exception.
[task 2025-11-17T16:17:58.683Z] process.wait()
[task 2025-11-17T16:17:58.683Z] raise
[task 2025-11-17T16:17:58.683Z] except: # Including KeyboardInterrupt, communicate handled that.
[task 2025-11-17T16:17:58.683Z] process.kill()
[task 2025-11-17T16:17:58.683Z] # We don't call process.wait() as .__exit__ does that for us.
[task 2025-11-17T16:17:58.683Z] raise
[task 2025-11-17T16:17:58.683Z] retcode = process.poll()
[task 2025-11-17T16:17:58.683Z] if check and retcode:
[task 2025-11-17T16:17:58.683Z] > raise CalledProcessError(retcode, process.args,
[task 2025-11-17T16:17:58.683Z] output=stdout, stderr=stderr)
[task 2025-11-17T16:17:58.683Z] E subprocess.CalledProcessError: Command '['/home/task_176339428251060/.local/share/virtualenvs/vcs-VYheMTPD/bin/python', './collect_executables.py', '-n']' returned non-zero exit status 1.
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] /usr/lib/python3.10/subprocess.py:526: CalledProcessError
[task 2025-11-17T16:17:58.683Z] _____________________ ERROR at setup of test_save_image_as _____________________
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] fx_executable = './firefox/firefox', opt_ci = True
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] @pytest.fixture(scope="session")
[task 2025-11-17T16:17:58.683Z] def version(fx_executable: str, opt_ci):
[task 2025-11-17T16:17:58.683Z] """Return the Firefox version string"""
[task 2025-11-17T16:17:58.683Z] if opt_ci:
[task 2025-11-17T16:17:58.683Z] version = (
[task 2025-11-17T16:17:58.683Z] > check_output([sys.executable, "./collect_executables.py", "-n"])
[task 2025-11-17T16:17:58.683Z] .strip()
[task 2025-11-17T16:17:58.683Z] .decode()
[task 2025-11-17T16:17:58.683Z] )
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] conftest.py:302:
[task 2025-11-17T16:17:58.683Z] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[task 2025-11-17T16:17:58.683Z] /usr/lib/python3.10/subprocess.py:421: in check_output
[task 2025-11-17T16:17:58.683Z] return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
[task 2025-11-17T16:17:58.683Z] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] input = None, capture_output = False, timeout = None, check = True
[task 2025-11-17T16:17:58.683Z] popenargs = (['/home/task_176339428251060/.local/share/virtualenvs/vcs-VYheMTPD/bin/python', './collect_executables.py', '-n'],)
[task 2025-11-17T16:17:58.683Z] kwargs = {'stdout': -1}
[task 2025-11-17T16:17:58.683Z] process = <Popen: returncode: 1 args: ['/home/task_176339428251060/.local/share/virtua...>
[task 2025-11-17T16:17:58.683Z] stdout = b'', stderr = None, retcode = 1
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] def run(*popenargs,
[task 2025-11-17T16:17:58.683Z] input=None, capture_output=False, timeout=None, check=False, **kwargs):
[task 2025-11-17T16:17:58.683Z] """Run command with arguments and return a CompletedProcess instance.
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] The returned instance will have attributes args, returncode, stdout and
[task 2025-11-17T16:17:58.683Z] stderr. By default, stdout and stderr are not captured, and those attributes
[task 2025-11-17T16:17:58.683Z] will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
[task 2025-11-17T16:17:58.683Z] or pass capture_output=True to capture both.
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] If check is True and the exit code was non-zero, it raises a
[task 2025-11-17T16:17:58.683Z] CalledProcessError. The CalledProcessError object will have the return code
[task 2025-11-17T16:17:58.683Z] in the returncode attribute, and output & stderr attributes if those streams
[task 2025-11-17T16:17:58.683Z] were captured.
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] If timeout is given, and the process takes too long, a TimeoutExpired
[task 2025-11-17T16:17:58.683Z] exception will be raised.
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] There is an optional argument "input", allowing you to
[task 2025-11-17T16:17:58.683Z] pass bytes or a string to the subprocess's stdin. If you use this argument
[task 2025-11-17T16:17:58.683Z] you may not also use the Popen constructor's "stdin" argument, as
[task 2025-11-17T16:17:58.683Z] it will be used internally.
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] By default, all communication is in bytes, and therefore any "input" should
[task 2025-11-17T16:17:58.683Z] be bytes, and the stdout and stderr will be bytes. If in text mode, any
[task 2025-11-17T16:17:58.683Z] "input" should be a string, and stdout and stderr will be strings decoded
[task 2025-11-17T16:17:58.683Z] according to locale encoding, or by "encoding" if set. Text mode is
[task 2025-11-17T16:17:58.683Z] triggered by setting any of text, encoding, errors or universal_newlines.
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] The other arguments are the same as for the Popen constructor.
[task 2025-11-17T16:17:58.683Z] """
[task 2025-11-17T16:17:58.683Z] if input is not None:
[task 2025-11-17T16:17:58.683Z] if kwargs.get('stdin') is not None:
[task 2025-11-17T16:17:58.683Z] raise ValueError('stdin and input arguments may not both be used.')
[task 2025-11-17T16:17:58.683Z] kwargs['stdin'] = PIPE
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] if capture_output:
[task 2025-11-17T16:17:58.683Z] if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
[task 2025-11-17T16:17:58.683Z] raise ValueError('stdout and stderr arguments may not be used '
[task 2025-11-17T16:17:58.683Z] 'with capture_output.')
[task 2025-11-17T16:17:58.683Z] kwargs['stdout'] = PIPE
[task 2025-11-17T16:17:58.683Z] kwargs['stderr'] = PIPE
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] with Popen(*popenargs, **kwargs) as process:
[task 2025-11-17T16:17:58.683Z] try:
[task 2025-11-17T16:17:58.683Z] stdout, stderr = process.communicate(input, timeout=timeout)
[task 2025-11-17T16:17:58.683Z] except TimeoutExpired as exc:
[task 2025-11-17T16:17:58.683Z] process.kill()
[task 2025-11-17T16:17:58.683Z] if _mswindows:
[task 2025-11-17T16:17:58.683Z] # Windows accumulates the output in a single blocking
[task 2025-11-17T16:17:58.683Z] # read() call run on child threads, with the timeout
[task 2025-11-17T16:17:58.683Z] # being done in a join() on those threads. communicate()
[task 2025-11-17T16:17:58.683Z] # _after_ kill() is required to collect that and add it
[task 2025-11-17T16:17:58.683Z] # to the exception.
[task 2025-11-17T16:17:58.683Z] exc.stdout, exc.stderr = process.communicate()
[task 2025-11-17T16:17:58.683Z] else:
[task 2025-11-17T16:17:58.683Z] # POSIX _communicate already populated the output so
[task 2025-11-17T16:17:58.683Z] # far into the TimeoutExpired exception.
[task 2025-11-17T16:17:58.683Z] process.wait()
[task 2025-11-17T16:17:58.683Z] raise
[task 2025-11-17T16:17:58.683Z] except: # Including KeyboardInterrupt, communicate handled that.
[task 2025-11-17T16:17:58.683Z] process.kill()
[task 2025-11-17T16:17:58.683Z] # We don't call process.wait() as .__exit__ does that for us.
[task 2025-11-17T16:17:58.683Z] raise
[task 2025-11-17T16:17:58.683Z] retcode = process.poll()
[task 2025-11-17T16:17:58.683Z] if check and retcode:
[task 2025-11-17T16:17:58.683Z] > raise CalledProcessError(retcode, process.args,
[task 2025-11-17T16:17:58.683Z] output=stdout, stderr=stderr)
[task 2025-11-17T16:17:58.683Z] E subprocess.CalledProcessError: Command '['/home/task_176339428251060/.local/share/virtualenvs/vcs-VYheMTPD/bin/python', './collect_executables.py', '-n']' returned non-zero exit status 1.
[task 2025-11-17T16:17:58.683Z]
[task 2025-11-17T16:17:58.683Z] /usr/lib/python3.10/subprocess.py:526: CalledProcessError
[task 2025-11-17T16:17:58.683Z] --------------------------------- JSON report ----------------------------------
[task 2025-11-17T16:17:58.683Z] report saved to: artifacts/report_headed.json
[task 2025-11-17T16:17:58.683Z] - Generated html report: file:///task_176339428251060/checkouts/vcs/artifacts/report_headed.html -
[task 2025-11-17T16:17:58.683Z] =========================== short test summary info ============================
[task 2025-11-17T16:17:58.683Z] ERROR tests/drag_and_drop/test_copy_hyperlink_table.py::test_copy_table_with_hyperlink
[task 2025-11-17T16:17:58.683Z] ERROR tests/drag_and_drop/test_copy_table_header.py::test_copy_table_header
[task 2025-11-17T16:17:58.683Z] ERROR tests/bookmarks_and_history/test_deleted_page_not_remembered.py::test_deleted_page_not_remembered
[task 2025-11-17T16:17:58.683Z] ERROR tests/bookmarks_and_history/test_delete_bookmarks_from_toolbar.py::test_delete_bookmarks_from_toolbar
[task 2025-11-17T16:17:58.683Z] ERROR tests/drag_and_drop/test_paste_image_text.py::test_paste_image_text - s...
[task 2025-11-17T16:17:58.683Z] ERROR tests/menus/test_frequently_used_context_menu.py::test_save_page_as - s...
[task 2025-11-17T16:17:58.683Z] ERROR tests/downloads/test_download_pdf_from_context_menu.py::test_download_pdf_from_context_menu
[task 2025-11-17T16:17:58.683Z] ERROR tests/menus/test_image_context_menu_actions.py::test_save_image_as - su...
[task 2025-11-17T16:17:58.683Z] =========== 137 deselected, 8 errors, 24 rerun in 335.50s (0:05:35) ============
[task 2025-11-17T16:17:58.783Z] + exit 1
[taskcluster 2025-11-17T16:17:58.792Z] Exit Code: 1
[taskcluster 2025-11-17T16:17:58.792Z] User Time: 11m58.170526s
[taskcluster 2025-11-17T16:17:58.792Z] Kernel Time: 22.633015s
[taskcluster 2025-11-17T16:17:58.792Z] Wall Time: 31m8.379073682s
[taskcluster 2025-11-17T16:17:58.792Z] Result: FAILED
[taskcluster 2025-11-17T16:17:58.792Z] === Task Finished ===
[taskcluster 2025-11-17T16:17:58.792Z] Task Duration: 31m8.380437948s
[taskcluster 2025-11-17T16:17:59.017Z] Uploading artifact public/results/report_headed.html from file /task_176339428251060/checkouts/vcs/artifacts/report_headed.html with content encoding "gzip", mime type "text/html; charset=utf-8" and expiry 2025-12-15T15:29:29.351Z
[taskcluster 2025-11-17T16:17:59.020Z] Uploading artifact public/results/report.json from file /task_176339428251060/checkouts/vcs/artifacts/report.json with content encoding "gzip", mime type "application/json" and expiry 2025-12-15T15:29:29.351Z
[taskcluster 2025-11-17T16:17:59.033Z] Uploading artifact public/results/report_headed.json from file /task_176339428251060/checkouts/vcs/artifacts/report_headed.json with content encoding "gzip", mime type "application/json" and expiry 2025-12-15T15:29:29.351Z
[taskcluster 2025-11-17T16:17:59.036Z] Uploading artifact public/results/assets/style.css from file /task_176339428251060/checkouts/vcs/artifacts/assets/style.css with content encoding "gzip", mime type "text/css; charset=utf-8" and expiry 2025-12-15T15:29:29.351Z
[taskcluster 2025-11-17T16:17:59.038Z] Uploading artifact public/results/report.html from file /task_176339428251060/checkouts/vcs/artifacts/report.html with content encoding "gzip", mime type "text/html; charset=utf-8" and expiry 2025-12-15T15:29:29.351Z
[taskcluster 2025-11-17T16:17:59.185Z] [mounts] Preserving cache: Moving "/task_176339428251060/checkouts" to "caches/T6YKTIqAT1Ke16jqtalKzA"
[taskcluster 2025-11-17T16:17:59.309Z] [mounts] Denying task_176339428251060 access to 'caches/T6YKTIqAT1Ke16jqtalKzA'
[taskcluster 2025-11-17T16:17:59.453Z] Uploading link artifact public/logs/live.log to artifact public/logs/live_backing.log with expiry 2025-12-15T15:29:29.351Z
[taskcluster:error] exit status 1
Loading