XLoadQueryFont() not returning with recent xserver master

Jeremy Huddleston Sequoia jeremyhu at apple.com
Sat Sep 17 06:16:57 UTC 2016


I bisected the issue to:

f993091e7db81b0420e23c485378cba112278839 is the first bad commit
commit f993091e7db81b0420e23c485378cba112278839
Author: Keith Packard <keithp at keithp.com>
Date:   Thu May 26 10:40:44 2016 -0700

    os: Switch server to poll(2) [v3]
    
    Eliminates all of the fd_set mangling in the server main thread
    
    v2: Listen for POLLOUT while writes are blocked.
    
    v3: Only mark client not ready on EAGAIN return from read
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Reviewed-by: Adam Jackson <ajax at redhat.com>

---

I'll see if I can dig into it a bit later, but my time is a bit thin.  If anyone else has a hunch as to what might be going on to narrow my search, I'd appreciate it.  If not, I'll probably start by taking a closer look at this particular change to understand what's going wrong.

Thanks,
Jeremy

> On Sep 11, 2016, at 16:54, Jeremy Huddleston Sequoia <jeremyhu at apple.com> wrote:
> 
> Upon a bit more digging, it looks like the clients are listed in output_pending_clients, but it's not getting delivered.
> 
> This situation reveals another issue with a use-after-free during CloseDownClient() in which a client will get re-added to the output_pending_clients during FlushClient() as part of CloseDownConnection().
> 
> See https://bugs.freedesktop.org/show_bug.cgi?id=97770 for more details on that.
> 
>> On Sep 11, 2016, at 12:24, Jeremy Huddleston Sequoia <jeremyhu at apple.com> wrote:
>> 
>> Using current master plus the various patches I submitted to the list last night, I'm able to launch the server fairly reliably under ASan again, but some clients are getting wedged.  Most notably, xterm gets stuck waiting for a reply from XLoadQueryFont().  Looking at the state of the server threads, it looks fine.  It's processing other requests just fine from other clients.
>> 
>> Has anyone noticed anything odd like this or have some hunch as to where I might start looking other than to do yet another bisect? =/
>> 
>> Thread 0x344e96           DispatchQueue 1           1000 samples (1-1000)     priority 31 (base 31)
>> 1000  start + 52 (xterm + 6312) [0x10d3bf8a8]
>>   1000  main + 3752 (xterm + 146228) [0x10d3e1b34]
>>     1000  spawnXTerm + 977 (xterm + 148776) [0x10d3e2528]
>>       1000  VTInit + 22 (xterm + 68248) [0x10d3cea98]
>>         1000  XtRealizeWidget + 135 (libXt.6.dylib + 84572) [0x10d4ffa5c]
>>           1000  RealizeWidget + 871 (libXt.6.dylib + 85805) [0x10d4fff2d]
>>             1000  RealizeWidget + 365 (libXt.6.dylib + 85299) [0x10d4ffd33]
>>               1000  VTRealize + 324 (xterm + 82404) [0x10d3d21e4]
>>                 1000  SetVTFont + 335 (xterm + 121728) [0x10d3dbb80]
>>                   1000  xtermLoadFont + 514 (xterm + 114081) [0x10d3d9da1]
>>                     1000  xtermOpenFont + 86 (xterm + 112342) [0x10d3d96d6]
>>                       1000  XLoadQueryFont + 311 (libX11.6.dylib + 29419) [0x10d54f2eb]
>>                         1000  _XQueryFont + 163 (libX11.6.dylib + 32127) [0x10d54fd7f]
>>                           1000  _XReply + 279 (libX11.6.dylib + 143484) [0x10d56b07c]
>>                             1000  xcb_wait_for_reply + 103 (libxcb.1.dylib + 8247) [0x10d711037]
>>                               1000  wait_for_reply + 251 (libxcb.1.dylib + 8521) [0x10d711149]
>>                                 1000  _xcb_conn_wait + 466 (libxcb.1.dylib + 4166) [0x10d710046]
>>                                   1000  _xcb_in_read + 1051 (libxcb.1.dylib + 12750) [0x10d7121ce]
>>                                     1000  __select + 10 (libsystem_kernel.dylib + 106318) [0x7fffc5e2df4e]
>>                                      *1000  _sleep_continue + 0 (kernel.development + 7459248) [0xffffff800091d1b0]
>> 
>> 
> 
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: https://lists.x.org/mailman/listinfo/xorg-devel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4465 bytes
Desc: not available
URL: <https://lists.x.org/archives/xorg-devel/attachments/20160916/4136e5aa/attachment.bin>


More information about the xorg-devel mailing list