[hackers] [st][patch] X event error handler

From: Ashkan Kiani <ashkan.k.kiani_AT_gmail.com>
Date: Sat, 16 Mar 2019 09:17:20 -0700

While I was using st, my terminal suddenly crashed. Looking at the
command output, the cause was the following error message:

    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: 4087
      Current serial number in output stream: 4349

and subsequently it would exit with status code 1.

Using XSynchronize, I traced the error to come to the exact same
conclusion, in the drawing subroutine the RenderAddGlyphs was throwing
an error on an emoji.

I tested with other terminals, and urxvt showed me a "tofu", meaning
that my unicode fonts weren't rendering appropriately, and alacritty
renders nothing, which st does as well (with this patch). As a result,
I thought that a good compromise would be to at least treat this error
as non-fatal. This error handler will presumably catch other errors,
however, and I'm not sure if that's something to be worried about
because of my lack of experience with Xorg. However, having your main
terminal exit upon seeing a single character is much worse.

Thank you,
Ashkan Kiani

Received on Sat Mar 16 2019 - 17:17:20 CET

This archive was generated by hypermail 2.3.0 : Mon Mar 18 2019 - 07:36:23 CET