[Xcb] [BUG] iceweasel (debian's firefox) hungs on shutdown in libxcb1

RALOVICH, Kristóf kristof.ralovich at gmail.com
Thu Jul 30 04:09:23 PDT 2009


On Sun, Jul 26, 2009 at 23:41, Josh Triplett<josh at joshtriplett.org> wrote:
> On Fri, Jul 24, 2009 at 07:11:59PM -0700, Jamey Sharp wrote:
>> On Fri, Jul 24, 2009 at 5:31 PM, Josh Triplett<josh at freedesktop.org> wrote:
>> > On Mon, Jul 20, 2009 at 01:10:01PM -0700, Barton C Massey wrote:
>> >> Note that, to the extent that calling into a closed
>> >> interface probably should never hang or crash, it seems to
>> >> me to be to some extent our bug too.  However, it will be
>> >> much easier for us to work on if the Qt bug (?) is fixed
>> >> first.
>> >
>> > Yeah, we probably want to do the cairo thing here, and have XCB calls on
>> > a closed interface fail gracefully.
>>
>> There are two cases. If either xcb_disconnect or XCloseDisplay has
>> been called, then all bets are off. xcb_disconnect frees the
>> xcb_connection structure, and XCloseDisplay frees the Display
>> structure whether it's built with XCB support or not, and I think
>> that's the right thing for those functions to do. In this case,
>> applications just need to be careful that the lifetime of their
>> references to the Display is not longer than the lifetime of the
>> Display itself: nothing X-specific there.
> [...]
>> I think this application has explicitly called XCloseDisplay before
>> exiting, because libXrender's cache of QueryExtension results has had
>> this Display removed from it (as evidenced by XRenderFindDisplay
>> calling XInitExtension), and because xcb_writev's has_error test isn't
>> firing. I don't know why calling poll(2) with c->fd, which should
>> already have been passed to close(2), doesn't just immediately return
>> an error; but hey, it's freed memory. It's probably been overwritten
>> with something that looks like a different open file descriptor.
>
> Yeah, it does seem like we can't do anything better here.  Oh well.
>
> - Josh Triplett
>

You may want to follow this in the future at
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=539175 .

Kristof


More information about the Xcb mailing list