Re: [dev] [st] Exit upon attempting to render glyph

From: David Lamkins <david_AT_lamkins.net>
Date: Wed, 9 Aug 2017 10:19:01 -0700

With default config *except for* font, which is:

char font[] = "NotoMono-17:antialias=true:autohint=false:hintstyle=hintnone";

Compiled with CFLAGS="-ggdb -O0",

Here's the backtrace. (No change):

#0 __GI__exit (status=status_AT_entry=1) at ../sysdeps/unix/sysv/linux/_exit.c:27
#1 0x00007ffff68f3383 in __run_exit_handlers (status=status_AT_entry=1,
    listp=<optimized out>, run_list_atexit=run_list_atexit_AT_entry=true,
    run_dtors=run_dtors_AT_entry=true) at exit.c:98
#2 0x00007ffff68f342a in __GI_exit (status=status_AT_entry=1) at exit.c:105
#3 0x00007ffff75caca8 in _XDefaultError (dpy=<optimized out>,
event=<optimized out>)
    at XlibInt.c:1385
#4 0x00007ffff75caddd in _XError (dpy=dpy_AT_entry=0x639310,
rep=rep_AT_entry=0x6df620)
    at XlibInt.c:1434
#5 0x00007ffff75c7d07 in handle_error (dpy=0x639310, err=0x6df620,
    in_XReply=<optimized out>) at xcb_io.c:199
#6 0x00007ffff75c7dc5 in handle_response (dpy=dpy_AT_entry=0x639310,
response=0x6df620,
    in_XReply=in_XReply_AT_entry=0) at xcb_io.c:311
#7 0x00007ffff75c86c5 in _XEventsQueued (dpy=0x639310, mode=<optimized out>)
    at xcb_io.c:350
#8 0x00007ffff75aa13a in XFlush (dpy=0x639310) at Flush.c:39
#9 0x000000000040e8a4 in run () at x.c:1675
#10 0x000000000040f378 in main (argc=0, argv=0x7fffffff7c90) at x.c:1764


On Wed, Aug 9, 2017 at 9:49 AM, David Lamkins <david_AT_lamkins.net> wrote:
> st output upon exit:
>
> X Error of failed request: BadLength (poly request too large or
> internal Xlib length error)
> Major opcode of failed request: 138 (RENDER)
> Minor opcode of failed request: 20 (RenderAddGlyphs)
> Serial number of failed request: 1408
> Current serial number in output stream: 1582
>
>
> I had to break on _exit() in gdb. WIthout that, the response to (gdb)
> bt is "No stack".
>
> Here's the backtrace. (This is with all of my config changes. I'll
> pare that down and post the results, shortly.)
>
> #0 __GI__exit (status=status_AT_entry=1) at ../sysdeps/unix/sysv/linux/_exit.c:27
> #1 0x00007ffff68f3383 in __run_exit_handlers (status=status_AT_entry=1,
> listp=<optimized out>, run_list_atexit=run_list_atexit_AT_entry=true,
> run_dtors=run_dtors_AT_entry=true) at exit.c:98
> #2 0x00007ffff68f342a in __GI_exit (status=status_AT_entry=1) at exit.c:105
> #3 0x00007ffff75caca8 in _XDefaultError (dpy=<optimized out>,
> event=<optimized out>)
> at XlibInt.c:1385
> #4 0x00007ffff75caddd in _XError (dpy=dpy_AT_entry=0x639310,
> rep=rep_AT_entry=0x6df5b0)
> at XlibInt.c:1434
> #5 0x00007ffff75c7d07 in handle_error (dpy=0x639310, err=0x6df5b0,
> in_XReply=<optimized out>) at xcb_io.c:199
> #6 0x00007ffff75c7dc5 in handle_response (dpy=dpy_AT_entry=0x639310,
> response=0x6df5b0,
> in_XReply=in_XReply_AT_entry=0) at xcb_io.c:311
> #7 0x00007ffff75c86c5 in _XEventsQueued (dpy=0x639310, mode=<optimized out>)
> at xcb_io.c:350
> #8 0x00007ffff75aa13a in XFlush (dpy=0x639310) at Flush.c:39
> #9 0x000000000040e8a4 in run () at x.c:1675
> #10 0x000000000040f378 in main (argc=0, argv=0x7fffffff7c90) at x.c:1764
>
> On Wed, Aug 9, 2017 at 9:24 AM, Alex Pilon <alp_AT_alexpilon.ca> wrote:
>> On Wed, Aug 09, 2017 at 08:36:49AM -0700, David B. Lamkins wrote:
>>> Upon attempting to render Unicode 1f596, st exits.
>>
>> I have the same problem, but with a different input, that I haven't
>> identified yet. However...
>>
>>> See attached strace excerpt.
>>
>> I'd recommend getting the Xlib stderr by running st from another
>> st, so that we can read the message that's obviously being printed out
>> below, and anything else of use, if any.
>>
>>> write(2, "X Error of failed request: BadL"..., 95) = 95
>>> write(2, "Major opcode of failed request: "..., 36) = 36
>>> write(2, " (RENDER)\n", 10) = 10
>>> write(2, " ", 2) = 2
>>> write(2, "Minor opcode of failed request: "..., 35) = 35
>>> write(2, " (RenderAddGlyphs)", 18) = 18
>>> write(2, "\n", 1) = 1
>>> write(2, " ", 2) = 2
>>> write(2, "Serial number of failed request:"..., 38) = 38
>>> write(2, "\n ", 3) = 3
>>> write(2, "Current serial number in output "..., 45) = 45
>>> write(2, "\n", 1) = 1
>>
>> I'd also suggest compiling with -g, and getting a backtrace with
>> gdb. Something like this roughly:
>>
>> $ gdb ./st
>> (gdb) start
>> (gdb) continue
>> [trigger the crash]
>> (gdb) bt
>> [copy-paste the backtrace below]
>>
>> Regards,
>>
>> Alex Pilon
>
>
>
> --
> "I think as musicians, we have more vision than we credit ourselves
> for. We should dive into it without reserve, and take the sort of
> risks it takes to be divisive and impactful. Things have yet to be
> done."
> Aaron Fowler Clark
>
> "Do not seek to follow in the footsteps of the masters. Seek what they sought."
> Matsuo Basho
>
> "Knowledge speaks; wisdom listens."
> Jimi Hendrix
>
> http://soundcloud.com/davidlamkins
> http://reverbnation.com/lamkins
> http://reverbnation.com/lcw
> http://lamkins-guitar.com/
> http://lamkins.net/
> http://successful-lisp.com/



-- 
"I think as musicians, we have more vision than we credit ourselves
for. We should dive into it without reserve, and take the sort of
risks it takes to be divisive and impactful. Things have yet to be
done."
   Aaron Fowler Clark
"Do not seek to follow in the footsteps of the masters. Seek what they sought."
   Matsuo Basho
"Knowledge speaks; wisdom listens."
   Jimi Hendrix
http://soundcloud.com/davidlamkins
http://reverbnation.com/lamkins
http://reverbnation.com/lcw
http://lamkins-guitar.com/
http://lamkins.net/
http://successful-lisp.com/
Received on Wed Aug 09 2017 - 19:19:01 CEST

This archive was generated by hypermail 2.3.0 : Wed Aug 09 2017 - 19:24:30 CEST