[Xcb] [Bug 27552] Lots of processes crash in XCreatePixmap() with _XAllocID: Assertion `ret != inval_id' failed

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Aug 12 03:47:01 PDT 2010


https://bugs.freedesktop.org/show_bug.cgi?id=27552

--- Comment #9 from hules <hules at free.fr> 2010-08-12 03:47:00 PDT ---
I have a small application that manages to reproduce that crash quite easily on
ubuntu 10.04, but only when running under valgrind. But that application itself
behaves quite badly as it calls xlib from different threads using the same
"Display*" struct for all threads, so I'm not sure if that might be of any use
for tracking this issue. However I think it calls XInitThreads() on startup, so
that should allow it to share the same display for all threads, isn't it ?

hellgrind outputs loads of stuff like:

==2950== Possible data race during write of size 4 at 0x44bd06c by thread #1
==2950==    at 0x4084764: ??? (in /usr/lib/libX11.so.6.3.0)
==2950==    by 0x4069352: XGetWindowProperty (in /usr/lib/libX11.so.6.3.0)
==2950==    by 0x81E0F46: juce::LinuxComponentPeer::isMinimised() const
(juce_linux_Windowing.cpp:902)
==2950==    by 0x8164890: juce::ComponentPeer::handleMovedOrResized()
(juce_amalgamated.cpp:71167)
==2950==    by 0x81E296B:
juce::LinuxComponentPeer::handleWindowMessage(_XEvent*)
(juce_linux_Windowing.cpp:1579)
==2950==    by 0x81E549F: juce::juce_windowMessageReceive(_XEvent*)
(juce_linux_Windowing.cpp:2617)
==2950==    by 0x81DE71F: juce::juce_dispatchNextXEvent()
(juce_linux_Messaging.cpp:384)
==2950==    by 0x81DE899: juce::juce_dispatchNextMessageOnSystemQueue(bool)
(juce_linux_Messaging.cpp:431)
==2950==    by 0x8137170: juce::MessageManager::dispatchNextMessage(bool,
bool*) (juce_amalgamated.cpp:34719)
==2950==    by 0x8137204: juce::MessageManager::runDispatchLoop()
(juce_amalgamated.cpp:34763)
==2950==    by 0x81348A1: juce::JUCEApplication::main(juce::StringArray&,
juce::JUCEApplication*) (juce_amalgamated.cpp:14770)
==2950==    by 0x8134A7B: juce::JUCEApplication::main(int, char**,
juce::JUCEApplication*) (juce_amalgamated.cpp:14859)
==2950==  This conflicts with a previous read of size 4 by thread #6
==2950==    at 0x4082F0C: _XSetPrivSyncFunction (in /usr/lib/libX11.so.6.3.0)
==2950==    by 0x408BBEF: _XAllocID (in /usr/lib/libX11.so.6.3.0)
==2950==    by 0x40611A7: XCreatePixmap (in /usr/lib/libX11.so.6.3.0)
==2950==    by 0x50BF8ED: XcursorImageLoadCursor (in
/usr/lib/libXcursor.so.1.0.2)
==2950==    by 0x50C0765: XcursorImagesLoadCursors (in
/usr/lib/libXcursor.so.1.0.2)
==2950==    by 0x50C0886: XcursorImagesLoadCursor (in
/usr/lib/libXcursor.so.1.0.2)
==2950==    by 0x50C4187: XcursorTryShapeCursor (in
/usr/lib/libXcursor.so.1.0.2)
==2950==    by 0x4060C5C: XCreateGlyphCursor (in /usr/lib/libX11.so.6.3.0)

before the failed assertion.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


More information about the Xcb mailing list