Xorg 1.19.1 SIGPIPE on application close

Antoine Martin antoine at nagafix.co.uk
Mon Feb 6 14:32:33 UTC 2017


Hi,

I can reproduce this Xorg server crash fairly reliably using xpra and
glxspheres simply by closing the application window:

Thread 1 "Xorg" received signal SIGPIPE, Broken pipe.
0x00007ffff57ca83d in writev () at ../sysdeps/unix/syscall-template.S:84
84	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
(gdb) bt
#0  0x00007ffff57ca83d in writev () at ../sysdeps/unix/syscall-template.S:84
#1  0x00000000005a2f4c in _XSERVTransSocketWritev (ciptr=0xbb7cf0,
buf=0x7fffffffc960, size=<optimized out>) at
/usr/include/X11/Xtrans/Xtranssock.c:2367
#2  0x000000000059dbfd in FlushClient (who=who at entry=0xbb4740,
oc=oc at entry=0xbb4700, __extraBuf=__extraBuf at entry=0x7fffffffd050,
extraCount=extraCount at entry=32) at io.c:855
#3  0x000000000059e13f in WriteToClient (who=who at entry=0xbb4740,
count=count at entry=32, __buf=__buf at entry=0x7fffffffd050) at io.c:768
#4  0x0000000000442552 in WriteEventsToClient
(pClient=pClient at entry=0xbb4740, count=<optimized out>, count at entry=1,
events=events at entry=0x7fffffffd050) at events.c:6000
#5  0x00000000004426f0 in TryClientEvents (client=0xbb4740,
dev=<optimized out>, pEvents=0x7fffffffd050, count=1, mask=<optimized
out>, filter=<optimized out>, grab=0x0) at events.c:2021
#6  0x0000000000445e5a in DeliverEventToInputClients
(dev=dev at entry=0x7fffffffcca0, inputclients=0xbb4d10,
win=win at entry=0x8b49e0, events=events at entry=0x7fffffffd050,
count=count at entry=1, filter=filter at entry=524288, grab=0x0,
client_return=0x7fffffffcc48, mask_return=0x7fffffffcc44) at events.c:2170
#7  0x0000000000446147 in DeliverEventToWindowMask
(mask_return=0x7fffffffcc44, client_return=0x7fffffffcc48, grab=0x0,
filter=524288, count=1, events=0x7fffffffd050, win=0x8b49e0,
dev=0x7fffffffcca0)
    at events.c:2213
#8  0x0000000000446147 in DeliverEventsToWindow
(pDev=pDev at entry=0x7fffffffcca0, pWin=0x8b49e0,
pEvents=pEvents at entry=0x7fffffffd050, count=count at entry=1,
filter=filter at entry=524288, grab=grab at entry=0x0)
    at events.c:2277
#9  0x00000000004468d7 in DeliverEvents (pWin=pWin at entry=0xbb7980,
xE=xE at entry=0x7fffffffd050, count=count at entry=1,
otherParent=otherParent at entry=0x0) at events.c:2826
#10 0x0000000000467937 in DeleteWindow (value=0xbb7980, wid=<optimized
out>) at window.c:1096
#11 0x000000000045bd32 in doFreeResource (res=0xbb7860,
skip=skip at entry=0) at resource.c:880
#12 0x000000000045cf06 in FreeClientResources
(client=client at entry=0xb6b030) at resource.c:1146
#13 0x00000000004363af in CloseDownClient (client=0xb6b030) at
dispatch.c:3474
#14 0x000000000059f2d1 in ospoll_wait (ospoll=0x855910,
timeout=<optimized out>) at ospoll.c:412
#15 0x00000000005982ec in WaitForSomething (are_ready=<optimized out>)
at WaitFor.c:226
#16 0x0000000000436dca in Dispatch () at dispatch.c:422
#17 0x000000000043b018 in dix_main (argc=20, argv=0x7fffffffdfa8,
envp=<optimized out>) at main.c:287
#18 0x00007ffff56ed401 in __libc_start_main (main=0x424cc0 <main>,
argc=20, argv=0x7fffffffdfa8, init=<optimized out>, fini=<optimized
out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdf98)
    at ../csu/libc-start.c:289
#19 0x0000000000424cfa in _start ()

It looks to me like it's trying to write to the client that has just
gone away?
xorg-x11-server-Xorg-1.19.1-3.fc25.x86_64

Cheers
Antoine


More information about the xorg-devel mailing list