Closed Bug 1709084 Opened 4 years ago Closed 4 years ago

mach test --debugger=gdb [...] breaks on python 3.9

Categories

(Firefox Build System :: Mach Core, defect, P3)

defect

Tracking

(firefox90 fixed)

RESOLVED FIXED
90 Branch
Tracking Status
firefox90 --- fixed

People

(Reporter: gerard-majax, Assigned: mhentges)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

STR:

  1. Linux distro with Python 3.9
  2. ./mach run test --debugger=gdb dom/canvas/test/webgl-conf/generated/test_2_conformance2__glsl3__array-as-return-value.html

Expected:
tests run under gdb

Actual:

$ MOZ_ENABLE_WAYLAND=1 ./mach test --debugger=gdb dom/canvas/test/webgl-conf/generated/test_2_conformance2__glsl3__array-as-return-value.html
Error running mach:

    ['test', '--debugger=gdb', 'dom/canvas/test/webgl-conf/generated/test_2_conformance2__glsl3__array-as-return-value.html']

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:

TypeError: 'in <string>' requires string as left operand, not int

  File "/home/alex/codaz/Mozilla/gecko-cinnabar/testing/mach_commands.py", line 458, in test
    res = self._mach_context.commands.dispatch(
  File "/home/alex/codaz/Mozilla/gecko-cinnabar/python/mach/mach/registrar.py", line 149, in dispatch
    kwargs, unknown = parser.parse_known_args(argv or [])
  File "/usr/lib/python3.9/argparse.py", line 1863, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/usr/lib/python3.9/argparse.py", line 1907, in _parse_known_args
    option_tuple = self._parse_optional(arg_string)
  File "/usr/lib/python3.9/argparse.py", line 2194, in _parse_optional
    if not arg_string[0] in self.prefix_chars:

Quick hacking into python/mach/mach/registrar.py line 148 shows that:

  • argv= [b'--debugger=gdb']
  • coercing argv[0] to str via .decode() fixes.

Repro'd by myself and others on:

  • Ubuntu 21.04
  • Debian/Sid
  • Fedora 33
Assignee: nobody → mhentges
Status: NEW → ASSIGNED
Priority: -- → P3

We're mostly using Python 3 today, so the old .encode("ascii")
conversion is no longer needed.

Pushed by mhentges@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/48872f359bc6 Don't encode debugger arg as ascii r=sheehan
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 90 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: