Closed Bug 2028996 Opened 1 month ago Closed 24 days ago

`./mach test mobile/android/fenix` yields `FileNotFoundError: [WinError 206] The filename or extension is too long` on Windows

Categories

(Testing :: General, defect)

defect

Tracking

(firefox151 fixed)

RESOLVED FIXED
151 Branch
Tracking Status
firefox151 --- fixed

People

(Reporter: ahochheiden, Assigned: ahochheiden)

References

Details

Attachments

(1 file)

With Bug 2028991 resolved, running ./mach test mobile/android/fenix hits a different problem: FileNotFoundError: [WinError 206] The filename or extension is too long

ahochheiden@Alex-Mozilla-P620 /d/mozilla-source/firefox
$ ./mach test mobile/android/fenix
Test configuration changed. Regenerating backend.
Streaming resource usage profile to: D:/mozilla-source/firefox/obj-x86_64-unknown-linux-android\.mozbuild\logs\test\profile_log_20260402_124735.json
Error running mach:

    mach test mobile/android/fenix

The error occurred in code that was called by the mach command. This is either
a bug in the called code itself or in the way that mach is calling it.
You can invoke ``./mach busted`` to check if this issue is already on file. If it
isn't, please use ``./mach busted file test`` to report it. If ``./mach busted`` is
misbehaving, you can also inspect the dependencies of bug 1543241.

If filing a bug, please include the full output of mach, including this error
message.

The details of the failure are as follows:

Traceback (most recent call last):
  File "D:\mozilla-source\firefox\python\mach\mach\main.py", line 416, in _run
    return Registrar._run_command_handler(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        handler,
        ^^^^^^^^
    ...<4 lines>...
        **vars(args.command_args),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "D:\mozilla-source\firefox\python\mach\mach\registrar.py", line 124, in _run_command_handler
    result = fn(instance, **kwargs)
  File "D:\mozilla-source\firefox\testing\mach_commands.py", line 547, in test
    res = command_context._mach_context.commands.dispatch(
        m["mach_command"],
    ...<3 lines>...
        **kwargs,
    )
  File "D:\mozilla-source\firefox\python\mach\mach\registrar.py", line 206, in dispatch
    return self._run_command_handler(handler, context, **kwargs)
           ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\mozilla-source\firefox\python\mach\mach\registrar.py", line 124, in _run_command_handler
    result = fn(instance, **kwargs)
  File "D:\mozilla-source\firefox\testing\android-test\mach_commands.py", line 196, in run_android_test
    return command_context._mach_context.commands.dispatch(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        "gradle", command_context._mach_context, args=gradle_command
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "D:\mozilla-source\firefox\python\mach\mach\registrar.py", line 206, in dispatch
    return self._run_command_handler(handler, context, **kwargs)
           ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\mozilla-source\firefox\python\mach\mach\registrar.py", line 124, in _run_command_handler
    result = fn(instance, **kwargs)
  File "D:\mozilla-source\firefox\mobile\android\mach_commands.py", line 728, in gradle
    rv = command_context.run_process(
        [gradle_path] + gradle_flags + args,
    ...<3 lines>...
        cwd=topsrcdir,
    )
  File "D:\mozilla-source\firefox\python\mach\mach\mixin\process.py", line 165, in run_process
    proc = subprocess.Popen(args, cwd=cwd, env=use_env, close_fds=False)
  File "d:\mozilla-source\firefox\third_party\python\sentry_sdk\sentry_sdk\utils.py", line 1811, in runner
    return sentry_patched_function(*args, **kwargs)
  File "d:\mozilla-source\firefox\third_party\python\sentry_sdk\sentry_sdk\integrations\stdlib.py", line 227, in sentry_patched_popen_init
    rv = old_popen_init(self, *a, **kw)
  File "D:\mozilla-build\python3\Lib\subprocess.py", line 1038, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                        pass_fds, cwd, env,
                        ^^^^^^^^^^^^^^^^^^^
    ...<5 lines>...
                        gid, gids, uid, umask,
                        ^^^^^^^^^^^^^^^^^^^^^^
                        start_new_session, process_group)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\mozilla-build\python3\Lib\subprocess.py", line 1552, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
                       ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
                             # no special security
                             ^^^^^^^^^^^^^^^^^^^^^
    ...<4 lines>...
                             cwd,
                             ^^^^
                             startupinfo)
                             ^^^^^^^^^^^^
FileNotFoundError: [WinError 206] The filename or extension is too long

When ./mach test mobile/android/fenix resolves tests, it passes every individual .kt file as a --tests <classname> argument to Gradle. With 500+ Fenix test files, this exceeds the ~8000 character command-line limit of cmd.exe Gradle on Windows.

Status: NEW → RESOLVED
Closed: 24 days ago
Resolution: --- → FIXED
Target Milestone: --- → 151 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: