Hi guys,
I am using SFML 2.0 and DSFML from git and since my last system upgrade (Arch Linux here) of xcb-proto (1.10-1 -> 1.10-2) I receive this error:
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
superkeen: xcb_io.c:179: dequeue_pending_request: Assertion `!xcb_xlib_unknown_req_in_deq' failed.
I cannot say the specific upgrade of xcb-proto is responsible for this issue, but I'd rather say there is something fishy going on on the SFML libraries side.
Has somebody else experienced it? Does using SFML 2.1 solve this? I have not tried SFML 2.1 because I do not know if it will work with current DSFML
Edit: more information (gdb stacktrace, no symbols for SFML sorry):
#0 0x00007ffff54af389 in raise () from /usr/lib/libc.so.6
No symbol table info available.
#1 0x00007ffff54b0788 in abort () from /usr/lib/libc.so.6
No symbol table info available.
#2 0x00007ffff54a84a6 in __assert_fail_base () from /usr/lib/libc.so.6
No symbol table info available.
#3 0x00007ffff54a8552 in __assert_fail () from /usr/lib/libc.so.6
No symbol table info available.
#4 0x00007ffff619240c in ?? () from /usr/lib/libX11.so.6
No symbol table info available.
#5 0x00007ffff619324b in _XReply () from /usr/lib/libX11.so.6
No symbol table info available.
#6 0x00007ffff617e8df in XInternAtom () from /usr/lib/libX11.so.6
No symbol table info available.
#7 0x00007ffff3be7c80 in ?? () from /usr/lib/libsfml-window.so.2
No symbol table info available.
#8 0x00007ffff3be814d in ?? () from /usr/lib/libsfml-window.so.2
No symbol table info available.
#9 0x00007ffff3be2cb3 in ?? () from /usr/lib/libsfml-window.so.2
No symbol table info available.
#10 0x00007ffff3be2a15 in sf::Window::create(sf::VideoMode, sf::String const&, unsigned int, sf::ContextSettings const&) ()
from /usr/lib/libsfml-window.so.2
No symbol table info available.
#11 0x00007ffff730a21c in sfRenderWindow_create () from ~/DSFML-C/build/lib/libdsfml-graphics.so.2
No symbol table info available.
#12 0x000000000054279d in dsfml.graphics.renderwindow.RenderWindow.__ctor() (this=0x7ffff7eb1d40,
settings=0x7d24e0 <dsfml.window.contextsettings.ContextSettings.Default()>, style=<incomplete type>, title=..., mode=...)
at ~/.dub/packages/dsfml-master/src/dsfml/graphics/renderwindow.d:76
No locals.
#13 0x00000000004e6b9c in D main (args=...)
at ~/.dub/packages/dsfml-master/src/dsfml/graphics/renderwindow.d:73
config = 0x7ffff7eb1e40
__ctmp2343 = {width = 800, height = 600, bitsPerPixel = 32}
mainMenu = 0x0
delta = 8451312
#14 0x000000000055906c in rt.dmain2._d_run_main() ()
No symbol table info available.
#15 0x0000000000558fc6 in rt.dmain2._d_run_main() ()
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#16 0x000000000055902c in rt.dmain2._d_run_main() ()
No symbol table info available.
#17 0x0000000000558fc6 in rt.dmain2._d_run_main() ()
No symbol table info available.
#18 0x0000000000558f47 in _d_run_main ()
No symbol table info available.
#19 0x00000000004ecc05 in main ()
No symbol table info available.
#20 0x00007ffff549bb05 in __libc_start_main () from /usr/lib/libc.so.6
No symbol table info available.
#21 0x00000000004e6599 in _start ()
No symbol table info available.
It seems like the culprit it's a call to XInternAtom() from libsfml-window. I think xcb does not allow anymore to call this from different threads. This might be due to the way DSFML is first creating the surfaces and then using them (different threads?)