Subject: Re: bug report: gitk crashes on git commit with emoji (utf-8)

From: Đoàn Trần Công Danh <[email-masked]>
Date: Sun, 11 Oct 2020 19:32:51 +0700

On 2020-10-05 13:33:02+0200, Tomek Mrugalski <[email-masked]> wrote:
> Hi there,
> 
> I'd like to report a bug in gitk. gitk crashes when trying to view a
> repository that has utf-8 chars in the commit comments.
> 
> System: Ubuntu 20.04
> Tested gitk versions:
> - 2.25 (the default in ubuntu 20.04),
> - 2.28 (installed from ppa:git-core/ppa),
> - latest (next branch, commit fdf196b9972337a0285dae59f904f62f989fbca8)
> 
> Steps to reproduce the issue:
> 
> I've isolated the commit in our repo that causes this problem and pushed
> it here: https://github.com/tomaszmrugalski/gitk-bug-emoji
> The repo is small (only 3 commits). The offending commit that seems to
> trigger this bug seems to be 3ad99781c449da3b1b42a098c4a820455050eb44.
> 
> git clone https://github.com/tomaszmrugalski/gitk-bug-emoji
> cd gitk-bug-emoji
> gitk
> 
> Actual behavior:
> 
> $ ~/devel-ssd/git/gitk-git/gitk
> 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:  3065
>   Current serial number in output stream:  3148

This looks like a bug in libXft, multiple projects see this problem.
As far as I understand, gitk uses tk to render graphic, we couldn't do
anything with this problem.

Workaround: Don't install coloured-emoji font.

Thanks,
-- Danh

> 
> There is a window showing up for a split second (too fast to even
> notice its content), then it disappears and the aforementioned
> X Error is shown in the console.
> 
> I've tried removing ~/.config/git/gitk, but that didn't help.
> 
> Expected behavior:
> 
> gitk should not crash. The window should show the git history.
> 
> It's very much ok if gitk doesn't show the emoji, but it shouldn't
> crash. I've tried to look for existing bug reports, but couldn't find
> anything useful.
> 
> System info (as produced by git bugreport)
> git version:
> git version 2.28.0.1022.gfdf196b997
> cpu: x86_64
> built from commit: fdf196b9972337a0285dae59f904f62f989fbca8
> sizeof-long: 8
> sizeof-size_t: 8
> shell-path: /bin/sh
> uname: Linux 5.4.0-48-generic #52-Ubuntu SMP Thu Sep 10 10:58:49 UTC
> 2020 x86_64
> compiler info: gnuc: 9.3
> libc info: glibc: 2.31
> $SHELL (typically, interactive shell): /bin/bash
> 
> The same error happens on earlier versions 2.25 and 2.28. Here's output
> from 2.28:
> 
> git version:
> git version 2.28.0
> cpu: x86_64
> no commit associated with this build
> sizeof-long: 8
> sizeof-size_t: 8
> shell-path: /bin/sh
> uname: Linux 5.4.0-48-generic #52-Ubuntu SMP Thu Sep 10 10:58:49 UTC
> 2020 x86_64
> compiler info: gnuc: 9.3
> libc info: glibc: 2.31
> $SHELL (typically, interactive shell): /bin/bash
> 
> Is there a workaround I could try?
> 
> I'm willing to help with debugging the problem or testing patches.
> I'm not sure how long I'll be able to remain subscribed to this list
> due to the traffic volume.
> 
> Other than that, gitk has been rock solid stable for me and I've been
> using it for years. Thanks a lot for providing this great tool.
> 
> Tomek Mrugalski

-- 
Danh