bump: Xorg segfaults on XOpenDisplay multi thread

Matan Drori matan at graphtech.co.il
Sun Dec 28 00:56:50 PST 2008

Bump, adding some backtraces:
Dump 1:
#0  _X11TransWritev (ciptr=0x0, buf=0x2000000001b96720, size=1) at
#1  0x2000000000093910 in _XSendClientPrefix (dpy=<value optimized out>,
client=<value optimized out>, auth_proto=0x0, auth_string=0x0,
prefix=0x2000000001b96784) at ConnDis.c:572
#2  0x20000000000c4640 in XOpenDisplay (display=<value optimized out>)
at OpenDis.c:295
#3  0x4000000000001580 in ThreadMain_OpenDisplayAndStartTest (num=0x1)
at ../../thread.cpp:37
#4  0x200000000027d5d0 in start_thread () from /lib/libpthread.so.0
#5  0x20000000007cb730 in __clone2 () from /lib/libc.so.6.1
Dump 2:
#0  0x200000000070f350 in malloc_consolidate () from /lib/libc.so.6.1
#1  0x2000000000714830 in _int_malloc () from /lib/libc.so.6.1
#2  0x2000000000716ef0 in calloc () from /lib/libc.so.6.1
#3  0x20000000000c4530 in XOpenDisplay (display=<value optimized out>)
at OpenDis.c:262
#4  0x4000000000001580 in ThreadMain_OpenDisplayAndStartTest (num=0x2)
at ../../thread.cpp:37
#5  0x200000000027d050 in start_thread () from /lib/libpthread.so.0
#6  0x20000000007cb730 in __clone2 () from /lib/libc.so.6.1

i explored this topic for quite a while, when i debug it i see memory corruptions every time it crashes.
memory corruptions doesn't always occur at the same place which makes it even harder and more confusing.

i am currently trying to build the debug version with dmalloc to see it it might find some memory over runs and so forth.
Machine spec:
/SUSE Linux Enterprise Server/ 10 sp 2
xorg x11 6.9.0-50.58

I have a very simple test program that opens 4 threads and does
XOpenDisplay(opening 4 separate display objects).

i keep getting segfaults on different places in the function
seems like some kind timing problem that causes memory corruption.

before i start giving backtraces here any one seen this problem before?
I can re-produce when working on X in debug, but couldn't re-produce it
when used Electric Fence Malloc Debugger with my program (wanted to see
if memory check can find any overruns)

More information about the xorg mailing list