threads / bug / 55503

Bug report: gitk unable to handle Unicode properly

Subject: Bug report: gitk unable to handle Unicode properly

## tl;dr

4 messages between Apr 16, 2021 and Apr 17, 2021.

replies: 3people: 3as markdown or json

Lars Kiesow· Apr 16, 2021, 16:21 UTC · lore

Hi everyone, while fixing some Unicode problems in a project, I noticed that gitk will not display Unicode characters correctly and may even crash if the branch name consists of Unicode characters.

I'ts certainly not the end of the world (who is crazy enough to use 🖤 as a branch name) but could still cause problems.

Please find some additional information below.

Best regards, Lars

What did you do before the bug happened? (Steps to reproduce your issue)
- Create a git branch named with a multi-byte Unicode character like:
        git checkout -b 🖤
- Launch gitk
    - Crash (see below)
- Switch to another branch
        git checkout xy
- Launch gitk
    - Branch names are not displayed properly
What did you expect to happen? (Expected behavior)
- Launching gitk, it should not crash and names like “🖤” should be
  displayed correctly
What happened instead? (Actual behavior)
- Launching while on the branch “🖤” crashed gitk.
  The reported error is:
        X Error of failed request:  BadLength (poly request too large or internal Xlib length error)
          Major opcode of failed request:  139 (RENDER)
          Minor opcode of failed request:  20 (RenderAddGlyphs)
          Serial number of failed request:  5225
          Current serial number in output stream:  5263
- Launching while on another branch but with the branch “🖤” makes that
  branch appear as ⌷⌷
What's different between what you expected and what actually happened?
- gitk should launch and display Unicode characters correctly

[System Info] git version: git version 2.30.2 cpu: x86_64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh uname: Linux 5.11.11-200.fc33.x86_64 #1 SMP Tue Mar 30 16:53:32 UTC 2021 x86_64 compiler info: gnuc: 10.2 libc info: glibc: 2.32 $SHELL (typically, interactive shell): /bin/zsh

[Enabled Hooks]
brian m. carlson· Apr 16, 2021, 23:20 UTC · re: Lars Kiesow · lore

Re: Bug report: gitk unable to handle Unicode properly

On 2021-04-16 at 16:21:21, Lars Kiesow wrote:
Show 7 quoted lines
> Hi everyone,
> while fixing some Unicode problems in a project, I noticed that gitk
> will not display Unicode characters correctly and may even crash if the
> branch name consists of Unicode characters.
> 
> I'ts certainly not the end of the world (who is crazy enough to use 🖤
> as a branch name) but could still cause problems.

I don't use gitk, but I decided to try to reproduce this nevertheless, and I'm having a bit of trouble.

Show 8 quoted lines
> What did you do before the bug happened? (Steps to reproduce your issue)
> 
> - Create a git branch named with a multi-byte Unicode character like:
> 
>         git checkout -b 🖤
> 
> - Launch gitk
>     - Crash (see below)
I don't see a crash.
Show 6 quoted lines
> - Switch to another branch
> 
>         git checkout xy
> 
> - Launch gitk
>     - Branch names are not displayed properly
I do see the emoji displayed properly.
> What did you expect to happen? (Expected behavior)
> 
> - Launching gitk, it should not crash and names like “🖤” should be
>   displayed correctly

This is the behavior I see. I'm using the Debian experimental packages of gitk 1:2.31.0+next.20210315-1 and Debian unstable's tk 8.6.11+1.

Is it possible your version of Tcl or Tk is not properly set up for this case? I know nothing about either of those; Tcl is one of the few reasonably common languages I have never worked with.

Show 13 quoted lines
> What happened instead? (Actual behavior)
> 
> - Launching while on the branch “🖤” crashed gitk.
>   The reported error is:
> 
>         X Error of failed request:  BadLength (poly request too large or internal Xlib length error)
>           Major opcode of failed request:  139 (RENDER)
>           Minor opcode of failed request:  20 (RenderAddGlyphs)
>           Serial number of failed request:  5225
>           Current serial number in output stream:  5263
> 
> - Launching while on another branch but with the branch “🖤” makes that
>   branch appear as ⌷⌷

Can you tell us about your locale settings? On most Linux systems, running the program "locale" should show them. I would expect something bad might happen if you were not in a UTF-8 locale.

-- 
brian m. carlson (he/him or they/them)
Houston, Texas, US
Chris Torek· Apr 17, 2021, 00:01 UTC · re: brian m. carlson · lore

Re: Bug report: gitk unable to handle Unicode properly

On Fri, Apr 16, 2021 at 4:21 PM brian m. carlson <sandals@crustytoothpaste.net> wrote:

> On 2021-04-16 at 16:21:21, Lars Kiesow wrote:
> > - Launch gitk
> >     - Crash (see below)
> I don't see a crash.
I think this is a Tk/X11 interaction bug.
See, e.g., https://bugs.python.org/issue42225 (which has the same symptoms).

I'm no tcl/tk expert, but I vaguely remember other similar bug reports. They all turned out to need a tk-side fix.

Chris
brian m. carlson· Apr 17, 2021, 00:35 UTC · re: Chris Torek · lore

Re: Bug report: gitk unable to handle Unicode properly

On 2021-04-17 at 00:01:45, Chris Torek wrote:
Show 14 quoted lines
> On Fri, Apr 16, 2021 at 4:21 PM brian m. carlson
> <sandals@crustytoothpaste.net> wrote:
> > On 2021-04-16 at 16:21:21, Lars Kiesow wrote:
> > > - Launch gitk
> > >     - Crash (see below)
> 
> > I don't see a crash.
> 
> I think this is a Tk/X11 interaction bug.
> 
> See, e.g., https://bugs.python.org/issue42225 (which has the same symptoms).
> 
> I'm no tcl/tk expert, but I vaguely remember other similar bug
> reports.  They all turned out to need a tk-side fix.

It seems from the linked bug report that this is fixed in Tk 8.6.11, which I'm using, but not in Tk 8.6.10, which is available in Fedora 33.

So it sounds like this should probably be filed as a bug with Fedora. I don't know what their policy on backports is like, but they might be willing to backport a fix to Fedora 33.

-- 
brian m. carlson (he/him or they/them)
Houston, Texas, US

← back to recent threads