On 15/06/2013 13:06, Matt D. wrote:
"Caught signal 11 (Segmentation fault). Server aborting"
So far I've only been able to duplicate this when tunneling Eclipse. I
tried writing a simple java program that creates a JFrame window but could
not replicate the crash with anything smaller (sorry!). The problem exists
in the two versions I tried: Eclipse 3.6 and 4.2.
I'm afraid your diagnosis is a bit speculative.
From the backtrace, it looks like the crash is occurring due to a failure when
converting the X11 icon to a Windows icon, and then not checking properly for
that failure.
I've applied a fix to address the immediate problem of not checking for the
failure, and I've uploaded a snapshot at [1]. Perhaps you could try that and
see if it fixes the issue for you? If it does, I would also be interested to
know how the icon for the window which was causing this issue appears.
[1] ftp://cygwin.com/pub/cygwinx/XWin.20130615-git-9a3cc6b8d6f94f74.exe.bz2
Although the error message pops up, Cygwin/X doesn't actually terminate
until the error window that reports the segfault is closed. X continues to
work if I ignore it, however all of the newly created windows do not have
any titlebars or frame borders.
This is because the crash is occurring in the window manager thread, not the
server thread.
This problem does NOT occur when running with either a root window or with the
'-rootless' option.
I've attached the XWin backtrace.
Thank you, this was very useful.
#27 0x0042c0fd in NetWMToWinIconAlpha (icon=0xff8d0030)
at /usr/src/debug/xorg-server-1.14.1-1/hw/xwin/wmutil/icon_convert.c:264
hdc =<optimized out>
ii = {fIcon = 1, xHotspot = 0, yHotspot = 0, hbmMask = 0x0,
hbmColor = 0x0}
bmh = {bV4Size = 108, bV4Width = -1, bV4Height = 1, bV4Planes = 1,
bV4BitCount = 32, bV4V4Compression = 3, bV4SizeImage = 0,
bV4XPelsPerMeter = 0, bV4YPelsPerMeter = 0, bV4ClrUsed = 0,
bV4ClrImportant = 0, bV4RedMask = 16711680, bV4GreenMask = 65280,
bV4BlueMask = 255, bV4AlphaMask = 4278190080, bV4CSType = 0,
bV4Endpoints = {ciexyzRed = {ciexyzX = 0, ciexyzY = 0,
ciexyzZ = 0}, ciexyzGreen = {ciexyzX = 0, ciexyzY = 0,
ciexyzZ = 0}, ciexyzBlue = {ciexyzX = 0, ciexyzY = 0,
ciexyzZ = 0}}, bV4GammaRed = 0, bV4GammaGreen = 0,
bV4GammaBlue = 0}
width =<optimized out>
height = 0
pixels = 0xff8d0038
result =<optimized out>
DIB_pixels = 0x0
Hmm... this seems to indicate that icon was of size -1x-1, which doesn't seem
right...
#28 NetWMToWinIcon (bpp=<optimized out>, icon=0xff8d0030)
at /usr/src/debug/xorg-server-1.14.1-1/hw/xwin/wmutil/icon_convert.c:358
hasIconAlphaChannel = true
versionChecked = true
#29 0x0042c687 in winXIconToHICON (conn=0x802d0cf8, id=10485914, iconSize=32)
at /usr/src/debug/xorg-server-1.14.1-1/hw/xwin/wmutil/icon_convert.c:438
mask =<optimized out>
image = 0x0
imageMask =<optimized out>
dst =<optimized out>
src =<optimized out>
planes = 1
bpp = 32
i =<optimized out>
biggest_size =<optimized out>
hDC =<optimized out>
ii = {fIcon = -1812266357, xHotspot = 2150436088,
yHotspot = 10485914, hbmMask = 0x1a19be, hbmColor = 0x20}
hints = {flags = 11, input = 2150436088, initial_state = -2176016,
icon_pixmap = 1975673360, icon_window = 1710526, icon_x = 1024,
icon_y = -2175960, icon_mask = 1975680452,
window_group = 1975680403}
hIcon = 0x0
biggest_icon =<optimized out>
_XA_NET_WM_ICON = 235
generation = 1
icon =<optimized out>
icon_data =<optimized out>
size =<optimized out>
cookie =<optimized out>
reply = 0xff890008
#30 0x004085ff in winUpdateIcon (hWnd=0x1a19be, pDisplay=0x8028efd8,
id=10485914, hIconNew=0x0)
at /usr/src/debug/xorg-server-1.14.1-1/hw/xwin/winmultiwindowicons.c:71
conn = 0x802d0cf8
hIcon =<optimized out>
hIconSmall = 0x0
hIconOld =<optimized out>
#31 0x0041d987 in UpdateIcon (iWindow=10485914, pWMInfo=<optimized out>)
at /usr/src/debug/xorg-server-1.14.1-1/hw/xwin/winmultiwindowwm.c:666
hWnd = 0x1a19be
hIconNew =<optimized out>
attr = {x = 2014, y = 389, width = 452, height = 302,
border_width = 0, depth = 24, visual = 0x802dc4e0, root = 534,
class = 1, bit_gravity = 1, win_gravity = 1, backing_store = 0,
backing_planes = 4294967295, backing_pixel = 0, save_under = 0,
colormap = 10485886, map_installed = 0, map_state = 2,
all_event_masks = 6537343, your_event_mask = 0,
do_not_propagate_mask = 0, override_redirect = 0,
screen = 0x802dc430}
#32 0x0041f3b9 in winMultiWindowWMProc (pArg=0x80046368)
at /usr/src/debug/xorg-server-1.14.1-1/hw/xwin/winmultiwindowwm.c:928
pNode = 0x8031fab0
__cleanup_handler = {function = 0x41d260<winMultiWindowThreadExit>,
arg = 0x0, next = 0x0}
pProcArg = 0x80046368
pWMInfo = 0x80046378
#33 0x610ffe1a in pthread::thread_init_wrapper(void*)@4 (arg=0x80040090)
at /usr/src/debug/cygwin-1.7.20-1/winsup/cygwin/thread.cc:1947
thread = 0x80040090
__PRETTY_FUNCTION__ = "static DWORD
pthread::thread_init_wrapper(void*)"
ret =<optimized out>
#34 0x6108974c in thread_wrapper (arg=0x0)
at /usr/src/debug/cygwin-1.7.20-1/winsup/cygwin/miscfuncs.cc:600
dealloc_addr =<optimized out>
count =<optimized out>
wrapper_arg = {func = 0x0, arg = 0x0, stackaddr = 0x0,
stackbase = 0x0, stacklimit = 0x0}
old_start = 0x610d9285<_sigbe>