So... what should we do about this?  I just got another report about IDL not 
working with the new libX11 (http://xquartz.macosforge.org/trac/ticket/469), 
and my hunch is that the user will provide me with a spindump that points to 
this issue again.


On Jan 29, 2011, at 19:24, Pat Kane wrote:

>>                  28 __XReply + 512 (in libX11.6.dylib) [0x6d50c0]
>>                                  ...
>>                                  11 __XReply + 240 (in libX11.6.dylib) 
>> [0x6d4fb0]
> 
> I just took a quick look at xcb_io.c to see what _XReply is doing,
> and I doubt that it is reentrant.
> The only way to break out of that "while(1)" loop is if "req == current".
> 
> I wonder why the  test at the top:
>       if(dpy->flags & XlibDisplayIOError)
>               return 0;
> did not work.
> 
> Pat
> ---
> 
> 
> 
> On Sat, Jan 29, 2011 at 11:54 AM, Jeremy Huddleston <jerem...@apple.com> 
> wrote:
>> I'm trying to figure out a spin that an XQuartz user reported seeing in 
>> emacs.  The problem seems to boil down to two things:
>> 
>> 1) XLoadQueryFont() is erroring for some reason (probably related to 
>> https://bugs.freedesktop.org/show_bug.cgi?id=28803)
>> 
>> 2) emacs' error handler seems bugged.  Is it legal to call XSync() within 
>> the error handler?  It certainly seems like it shouldn't.  Did we used to 
>> actually support this with the xtrans version of libX11?
>> 
>> Why are we spinning in _XReply rather than entering a deadlock here?  It 
>> seems to me that we shouldn't wake from this ConditionWait because the 
>> _XReply we're nested in won't ever ConditionBroadcast()... so why is he 
>> seeing us spin through _XReply?  It's almost as if this ConditionWait() is a 
>> no-op:
>> 
>>        while(1)
>>        {
>>                PendingRequest *req = dpy->xcb->pending_requests;
>>                xcb_generic_reply_t *response;
>> 
>>                if(req != current && req->reply_waiter)
>>                {
>>                        ConditionWait(dpy, dpy->xcb->reply_notify);
>>                        /* Another thread got this reply. */
>>                        continue;                }
>> 
>> 
>> Here's the top of the backtrace:
>> 
>> 28 _XtCreateWidget + 168 (in libXt.6.dylib) [0x569288]
>>  28 __XtCreateWidget + 700 (in libXt.6.dylib) [0x5691cc]
>>    28 _xtCreate + 372 (in libXt.6.dylib) [0x568b14]
>>      28 __XtGetResources + 324 (in libXt.6.dylib) [0x582124]
>>        28 _GetResources + 2368 (in libXt.6.dylib) [0x581a60]
>>          28 __XtConvert + 844 (in libXt.6.dylib) [0x562f2c]
>>            28 _CallConverter + 872 (in libXt.6.dylib) [0x562958]
>>              28 _XtCvtStringToFontStruct + 156 (in libXt.6.dylib) [0x56592c]
>>                28 _XLoadQueryFont + 424 (in libX11.6.dylib) [0x6b2dd8]
>>                  28 __XQueryFont + 228 (in libX11.6.dylib) [0x6b1b74]
>>                    28 __XReply + 512 (in libX11.6.dylib) [0x6d50c0]
>>                      28 _handle_response + 148 (in libX11.6.dylib) [0x6d45e4]
>>                        28 _handle_error + 136 (in libX11.6.dylib) [0x6d42f8]
>>                          28 __XError + 264 (in libX11.6.dylib) [0x6d7b38]
>>                            28 _x_error_handler + 84 (in emacs-24.0.50.1) 
>> [0x105444]
>>                              28 _x_error_quitter + 112 (in emacs-24.0.50.1) 
>> [0x1053d0]
>>                                28 _x_connection_closed + 252 (in 
>> emacs-24.0.50.1) [0x10500c]
>>                                  28 _XSync + 160 (in libX11.6.dylib) 
>> [0x6d00a0]
>>                                    11 __XReply + 240 (in libX11.6.dylib) 
>> [0x6d4fb0]
>>                                    5 __XReply + 236 (in libX11.6.dylib) 
>> [0x6d4fac]
>>                                    5 __XReply + 248 (in libX11.6.dylib) 
>> [0x6d4fb8]
>>                                    3 __XReply + 224 (in libX11.6.dylib) 
>> [0x6d4fa0]
>>                                    3 __XReply + 228 (in libX11.6.dylib) 
>> [0x6d4fa4]
>>                                    1 __XReply + 252 (in libX11.6.dylib) 
>> [0x6d4fbc]
>> 
>> 
>> 
>> On Jan 29, 2011, at 02:23, Peter Dyballa wrote:
>> 
>>> 
>>> Am 29.01.2011 um 05:50 schrieb Jeremy Huddleston:
>>> 
>>>> Ok, well give me a spindump when your libXaw3d version is in this state.
>>> 
>>> 
>>> Here it is:
>>> 
>>> <emacs-24.0.50.1_26454.sample.txt>
>>> 
>>> --
>>> Greetings
>>> 
>>>  Pete
>>> 
>>> Inside every small problem is a large problem struggling to get out.
>>>                               – Second Law of Blissful Ignorance
>>> 
>> 
>> _______________________________________________
>> xorg-devel@lists.x.org: X.Org development
>> Archives: http://lists.x.org/archives/xorg-devel
>> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>> 
> _______________________________________________
> xorg-devel@lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to