New issue
Advanced search Search tips

Issue 812466 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug


Show other hotlists

Hotlists containing this issue:
good-first-depot-tools-bugs


Sign in to add a comment

Can git cl upload create a CL that git cl status cannot display?

Project Member Reported by brucedaw...@chromium.org, Feb 15 2018

Issue description

Yes!

I inadvertently uploaded a CL that had unintended characters at the beginning of the first line and in some stack entries I had pasted from Visual Studio. This uploaded fine but gave the following error in "git cl status":

Current branch: guard_incremental
Issue number: 920761 (https://chromium-review.googlesource.com/920761)
Issue description:
Traceback (most recent call last):
  File "c:\src\depot_tools\\git_cl.py", line 6185, in <module>
    sys.exit(main(sys.argv[1:]))
  File "c:\src\depot_tools\\git_cl.py", line 6167, in main
    return dispatcher.execute(OptionParser(), argv)
  File "c:\src\depot_tools\subcommand.py", line 252, in execute
    return command(parser, args[1:])
  File "c:\src\depot_tools\\git_cl.py", line 4473, in CMDstatus
    print(cl.GetDescription(pretty=True))
  File "c:\src\depot_tools\third_party\colorama\ansitowin32.py", line 34, in write
    self.__convertor.write(text)
  File "c:\src\depot_tools\third_party\colorama\ansitowin32.py", line 115, in write
    self.write_and_convert(text)
  File "c:\src\depot_tools\third_party\colorama\ansitowin32.py", line 142, in write_and_convert
    self.write_plain_text(text, cursor, len(text))
  File "c:\src\depot_tools\third_party\colorama\ansitowin32.py", line 147, in write_plain_text
    self.wrapped.write(text[start:end])
  File "c:\src\depot_tools\win_tools-2_7_6_bin\python\bin\lib\encodings\cp437.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\ufeff' in position 2: character maps to <undefined>



I can work around this easily enough (delete the branch, git cl patch the CL from the web, where I fixed the description) but it would be nice to avoid this in some way.

Here is what the CL looks like locally. I'm retaining the branch and its associated issue for now in case it's need for further diagnostics.

git show
commit 419587716e21977790ab2d106b8ae5d5ed0eb73d (HEAD -> guard_incremental)
Author: Bruce Dawson <brucedawson@chromium.org>
Date:   Wed Feb 14 16:42:27 2018 -0800

    <EF><BB><BF>Disable CFG (/guard:cf) for component builds

    There appears to be a bug in Microsoft's linker when using /guard:cf
    with incremental linking. The table of functions occasionally gets
    corrupted or not update which leads to a CFG violation when the OS
    thinks that an invalid indirect branch is being taken. The stack shows:

        ntdll.dll!RtlFailFast2^^()
        ntdll.dll!RtlpHandleInvalidUserCallTarget^^()

    Bug:  812421 
 

Comment 1 by aga...@chromium.org, Feb 17 2018

Components: -Infra>Git
Status: Available (was: Untriaged)
Nice find. Unicode is hard :(

Comment 2 by js...@chromium.org, May 11 2018

> File "c:\src\depot_tools\win_tools-2_7_6_bin\python\bin\lib\encodings\cp437.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u

Why is cp437 used by win_tools? When a CL is made on Windows and non-ASCII characters are in the CL description, 'git cl status' will always have this issue. 

The CL description has UTF-8 BOM (U+FEFF encoded in UTF-8). 

Comment 3 by js...@chromium.org, May 11 2018

Cc: js...@chromium.org

Sign in to add a comment