gitk аварийно завершает работу при просмотре коммита, содержащего эмодзи :X Ошибка неудачного запроса :BadLength (слишком большой полизапрос или внутренняя ошибка длины Xlib)

Это помогает? В вашем~/.inputrc

set editing-mode vi
5
15.01.2021, 11:57
3 ответа

Покопавшись с флагом XFT_DEBUG, я обнаружил кое-что странное. Я запускаю команду с флагом и перехожу к проблемному коммиту:

❯ XFT_DEBUG=1 gitk --all
XFT_DEBUG=1
XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoSans-Medium.ttf: 0 (15.9999 pixels)
XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoSans-Medium.ttf: 0 (15.9999 pixels)
…
XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoSans-Medium.ttf: 0 (17.5999 pixels)
XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoSans-Bold.ttf: 0 (17.5999 pixels)
XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf: 0 (17.5999 pixels)
XftFontInfoFill: /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: 2 (17.5999 pixels)
XftFontInfoFill: /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: 0 (17.5999 pixels)
XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf: 0 (109 pixels)
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:  6687
  Current serial number in output stream:  6706

Затем было обнаружено, что последняя строка перед сбоем имела эксцентрический размер в пикселях

XftFontInfoFill: /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: 0 (17.5999 pixels)

XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf: 0 (109 pixels)

Удаление Noto-color-emojiшрифтов решило проблему

apt remove --purge fonts-noto-color-emoji

Устранены сбои, и для рендеринга используется постоянный размер шрифта

XftFontInfoFill: /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: 2 (17.5999 pixels)

Версия

❯ apt show fonts-noto-color-emoji
…
Version: 0~20200408-1
25
18.03.2021, 22:36

Судя по моим исследованиям, это ошибка в библиотеке xorg "libXft" (см. проблему libxft #6 и ожидаемый запрос на слияние libxft!1).

Связанные обсуждения:

Согласно ответу Эдуарда, обходным путем является удаление пакета fonts-noto-color-emoji(apt remove --purge fonts-noto-color-emoji).

10
12.04.2021, 08:36

В Fedora мне удалось исправить аналогичную ошибку, которую я получил с git-gui, удалив пакет google-noto-emoji-color-fonts.

1
02.12.2021, 21:54

Теги

Похожие вопросы