bugzilla.mozilla.org has resumed normal operation. Attachments prior to 2014 will be unavailable for a few days. This is tracked in Bug 1475801.
Please report any other irregularities here.

mach: UnicodeEncodeError: 'ascii' codec can't encode characters in position 26-28: ordinal not in range(128)



Firefox Build System
3 years ago
5 months ago


(Reporter: db48x, Unassigned)



Firefox Tracking Flags

(firefox42 affected)




3 years ago
Perhaps stdout is ascii or something? Bug 795394 would have fixed that, at least for the parent. If I poke into the child_exception I see that it's complaining about my fancy prompt (powerline); indeed, if I turn that off mach works fine.

Here's the output, with my prompt included:

  anglachel  db48x  ~  src  firefox  ./mach build
 0:00.13 /usr/bin/make -f client.mk -s
Error running mach:


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 should consider filing a bug for this issue.

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

The details of the failure are as follows:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 26-28: ordinal not in range(128)

  File "/home/db48x/src/firefox/python/mozbuild/mozbuild/mach_commands.py", line 389, in build
    silent=not verbose)
  File "/home/db48x/src/firefox/python/mozbuild/mozbuild/base.py", line 572, in _run_make
    return fn(**params)
  File "/home/db48x/src/firefox/python/mozbuild/mozbuild/base.py", line 615, in _run_command_in_srcdir
    return self.run_process(cwd=self.topsrcdir, **args)
  File "/home/db48x/src/firefox/python/mach/mach/mixin/process.py", line 136, in run_process
  File "/home/db48x/src/firefox/testing/mozbase/mozprocess/mozprocess/processhandler.py", line 727, in run
    self.proc = self.Process([self.cmd] + self.args, **args)
  File "/home/db48x/src/firefox/testing/mozbase/mozprocess/mozprocess/processhandler.py", line 114, in __init__
    universal_newlines, startupinfo, creationflags)
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
    raise child_exception

Comment 1

3 years ago
Does your source or object directory have non-ascii characters in it? If so, that's likely the bug. Unicode in prompts and other environments should work.
Flags: needinfo?(db48x)

Comment 2

3 years ago
No, there are no non-ascii characters in the path:

  anglachel  db48x  ~  src  firefox  hexdump -C <(pwd)
00000000  2f 68 6f 6d 65 2f 64 62  34 38 78 2f 73 72 63 2f  |/home/db48x/src/|
00000010  66 69 72 65 66 6f 78 0a                           |firefox.|

(you can see that no high bits are set).

Also, changing my prompt caused the error to go away. My apologies for not including that detail originally; however you'll note that when I used the debugger to inspect the exception object I see that it's pointing to the first non-ascii character in my prompt, which it's reading from a stream.
Flags: needinfo?(db48x)


5 months ago
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.