Xpra: Ticket #71: X Error when starting DDT debugger

Hi,

I'm trying to run DDT under xpra, but I get the following error:

$ DISPLAY=:100 /home/angelv/ddt/bin/ddt
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  42 (X_SetInputFocus)
  Serial number of failed request:  22
  Current serial number in output stream:  24
$

This is in a Ubuntu 11.04 (x86_64) box, running xpra v0.0.7.33. I include below the xpra log, in case it can shed some light into the issue.

Thanks a lot, Ángel de Vicente

========================
[dix] Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/100dpi/:unscaled, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/75dpi/:unscaled, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/100dpi, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/75dpi, removing from list!
Xlib:  extension "RANDR" missing on display ":100".
Xlib:  extension "RANDR" missing on display ":100".
Xlib:  extension "RANDR" missing on display ":100".
Randr not supported: X server does not support required extension Randr
randr enabled: False
using notification forwarder
xpra is ready.
New connection received
Handshake complete; enabling connection
encoding set to rgb24, client supports ['rgb24', 'jpeg', 'png'], server supports ['rgb24', 'jpeg', 'png']
using client supplied mmap file=/tmp/xpra.5wk28s.mmap, size=134217728
client resolution is [2560, 1024], current server resolution is 3840x2560
setting key repeat rate from client: 500 / 33
['setxkbmap', '-rules', 'evdev', '-model', 'dellsk8125', '-layout', 'es']
['xkbcomp', '-', ':100'] with stdin=xkb_keymap {\n      xkb_keycodes  { ..
set_keycodes: no free keycodes!, cannot translate 231: [[65385, 'Cancel', 231, 0, 0]]
set_keycodes: no free keycodes!, cannot translate 233: [[269025026, 'XF86MonBrightnessUp', 233, 0, 0]]
set_keycodes: no free keycodes!, cannot translate 235: [[269025113, 'XF86Display', 235, 0, 0]]
set_keycodes: no free keycodes!, cannot translate 237: [[269025030, 'XF86KbdBrightnessDown', 237, 0, 0]]
/usr/lib/python2.7/dist-packages/wimpiggy/prop.py:165: GtkWarning: /build/buildd/gtk+2.0-2.24.4/gdk/x11/gdkproperty-x11.c:325 invalid X atom: 8388609
  return str(get_pyatom(disp, struct.unpack("@I", d)[0]))
/usr/lib/python2.7/dist-packages/wimpiggy/prop.py:165: GtkWarning: /build/buildd/gtk+2.0-2.24.4/gdk/x11/gdkproperty-x11.c:325 invalid X atom: 2047
  return str(get_pyatom(disp, struct.unpack("@I", d)[0]))
/usr/lib/python2.7/dist-packages/wimpiggy/prop.py:165: GtkWarning: /build/buildd/gtk+2.0-2.24.4/gdk/x11/gdkproperty-x11.c:325 invalid X atom: 4157174968
  return str(get_pyatom(disp, struct.unpack("@I", d)[0]))
/usr/lib/python2.7/dist-packages/wimpiggy/prop.py:165: GtkWarning: /build/buildd/gtk+2.0-2.24.4/gdk/x11/gdkproperty-x11.c:325 invalid X atom: 4180777408
  return str(get_pyatom(disp, struct.unpack("@I", d)[0]))
Unhandled error while processing packet from peer
Traceback (most recent call last):
  File "/usr/lib/xpra/xpra/protocol.py", line 286, in _process_packet
    self._process_packet_cb(self, decoded)
  File "/usr/lib/xpra/xpra/server.py", line 1838, in process_packet
    self._packet_handlers[packet_type](self, proto, packet)
  File "/usr/lib/xpra/xpra/server.py", line 1530, in _process_map_window
    window = self._id_to_window[id]
KeyError: 2


Wed, 18 Jan 2012 10:18:28 GMT - Antoine Martin: owner, status, description changed


Wed, 18 Jan 2012 17:49:57 GMT - Antoine Martin:

I do not wish to subscribe/sign-up/give my email or anything, so please provide a test license for me or I can investigate.


Tue, 07 Feb 2012 19:38:31 GMT - Antoine Martin:

Not sure what the ddt/bin/ddt script does that causes problems, but launching ddt/libexec/ddt.bin works ok. Is that enough to get you going? Or do you really need those bits?

It does some LD_LIBRARY_PATH trickery to include its own copy of shared libraries (qt, GL and others) - this is generally a big no-no, only a proprietary app can get away with nasty hacks like these.

I even managed to crash the whole server by running the server with GDK_SYNCHRONIZE=1 xpra start :7 --no-daemon here is the gdb backtrace:

(gdb) bt
#0  g_logv (log_domain=0x3157281b57 "Gdk", log_level=<optimized out>, format=0x31572a075e "%s", args1=0x7ffffd540cf8) at gmessages.c:577
#1  0x000000315464d6a2 in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at gmessages.c:591
#2  0x000000315726ab2b in gdk_x_error (error=<optimized out>, display=<optimized out>) at gdkmain-x11.c:486
#3  gdk_x_error (display=<optimized out>, error=<optimized out>) at gdkmain-x11.c:456
#4  0x00000036cae4810f in _XError (dpy=0xf83ec0, rep=<optimized out>) at XlibInt.c:1583
#5  0x00000036cae44f91 in handle_error (dpy=0xf83ec0, err=0x12aee90, in_XReply=<optimized out>) at xcb_io.c:166
#6  0x00000036cae45ee7 in _XReply (dpy=0xf83ec0, rep=0x7ffffd541000, extra=0, discard=1) at xcb_io.c:634
#7  0x00000036cae28f70 in XGetGeometry (dpy=0xf83ec0, d=12582915, root=0x7ffffd541090, x=0x7ffffd541098, y=0x7ffffd54109c, width=0x7ffffd5410a0, height=0x7ffffd5410a4, borderWidth=0x7ffffd5410a8, depth=0x7ffffd5410ac) at GetGeom.c:47
#8  0x0000003157274a75 in gdk_window_x11_get_geometry (depth=0x7ffffd54115c, height=0x7ffffd541158, width=0x7ffffd541154, y=0x7ffffd541150, x=0x7ffffd54114c, window=0x1117900 [GdkWindow]) at gdkwindow-x11.c:2837
#9  gdk_window_x11_get_geometry (window=0x1117900 [GdkWindow], x=0x7ffffd54114c, y=0x7ffffd541150, width=0x7ffffd541154, height=0x7ffffd541158, depth=0x7ffffd54115c) at gdkwindow-x11.c:2820
#10 0x000000315724400c in IA__gdk_window_get_geometry (window=0x1117900 [GdkWindow], x=0x7ffffd54114c, y=0x7ffffd541150, width=0x7ffffd541154, height=0x7ffffd541158, depth=0x7ffffd54115c) at gdkwindow.c:8275
#11 0x00007fd38d0a5d3a in _wrap_gdk_window_get_geometry (self=0x11edbe0) at gdkwindow.override:404
#12 0x00000036d76dfb13 in call_function (oparg=<optimized out>, pp_stack=0x7ffffd541258) at /usr/src/debug/Python-2.7.2/Python/ceval.c:4074
#13 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:2740
#14 0x00000036d76e0580 in fast_function (nk=<optimized out>, na=2, n=<optimized out>, pp_stack=0x7ffffd541398, func=<function at remote 0x10656e0>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:4176
#15 call_function (oparg=<optimized out>, pp_stack=0x7ffffd541398) at /usr/src/debug/Python-2.7.2/Python/ceval.c:4111
#16 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:2740
#17 0x00000036d76e15a5 in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=3, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at /usr/src/debug/Python-2.7.2/Python/ceval.c:3330
#18 0x00000036d766dc2c in function_call (func=<function at remote 0x1065320>, arg=(<XpraServer(keys_timedout={}, _id_to_window={1: <WindowModel(_input_field=1, _gproperties={'user-friendly-size': (122, 69), 'iconic': False, 'client-window': <gtk.gdk.Window at remote 0x1062550>, 'size-hints': <WMSizeHints(max_aspect_ratio=None, min_aspect_ratio=None, base_size=(19, 4), min_aspect=None, max_aspect=None, min_size=(25, 17), resize_inc=(6, 13), max_size=None) at remote 0x105aed0>, 'title': u'antoine@desktop:~/ddt', 'group-leader': None, 'client-machine': u'desktop', 'pid': 10712, 'state': frozenset([]), 'strut': None, 'icon-pixmap': None, 'owner': <DesktopManager(_models={<...>: <AdHocStruct(shown=True, geom=(2, 23, 751, 901), window=<gtk.gdk.Window at remote 0x10627d0>) at remote 0x10a61d0>, <WindowModel(_input_field=1, _gproperties={'user-friendly-size': (80, 24), 'iconic': False, 'client-window': <gtk.gdk.Window at remote 0x1187f50>, 'size-hints': <WMSizeHints(max_aspect_ratio=None, min_aspect_ratio=None, base_size=(19, 4), min_aspect=None, max_aspect=None, min_size=(25, 17), resize_inc=(6, ...(truncated), kw=0x0) at /usr/src/debug/Python-2.7.2/Objects/funcobject.c:526
#19 0x00000036d7649193 in PyObject_Call (func=<function at remote 0x1065320>, arg=<optimized out>, kw=<optimized out>) at /usr/src/debug/Python-2.7.2/Objects/abstract.c:2529
#20 0x00000036d7657dff in instancemethod_call (func=<function at remote 0x1065320>, arg=(<XpraServer(keys_timedout={}, _id_to_window={1: <WindowModel(_input_field=1, _gproperties={'user-friendly-size': (122, 69), 'iconic': False, 'client-window': <gtk.gdk.Window at remote 0x1062550>, 'size-hints': <WMSizeHints(max_aspect_ratio=None, min_aspect_ratio=None, base_size=(19, 4), min_aspect=None, max_aspect=None, min_size=(25, 17), resize_inc=(6, 13), max_size=None) at remote 0x105aed0>, 'title': u'antoine@desktop:~/ddt', 'group-leader': None, 'client-machine': u'desktop', 'pid': 10712, 'state': frozenset([]), 'strut': None, 'icon-pixmap': None, 'owner': <DesktopManager(_models={<...>: <AdHocStruct(shown=True, geom=(2, 23, 751, 901), window=<gtk.gdk.Window at remote 0x10627d0>) at remote 0x10a61d0>, <WindowModel(_input_field=1, _gproperties={'user-friendly-size': (80, 24), 'iconic': False, 'client-window': <gtk.gdk.Window at remote 0x1187f50>, 'size-hints': <WMSizeHints(max_aspect_ratio=None, min_aspect_ratio=None, base_size=(19, 4), min_aspect=None, max_aspect=None, min_size=(25, 17), resize_inc=(6, ...(truncated), kw=0x0) at /usr/src/debug/Python-2.7.2/Objects/classobject.c:2578
#21 0x00000036d7649193 in PyObject_Call (func=<instancemethod at remote 0x101b640>, arg=<optimized out>, kw=<optimized out>)
    at /usr/src/debug/Python-2.7.2/Objects/abstract.c:2529
#22 0x00000036d76da457 in PyEval_CallObjectWithKeywords (func=<instancemethod at remote 0x101b640>, arg=(<Wm(_root=<gtk.gdk.Window at remote 0x1062140>, _alt_display=<gtk.gdk.Display at remote 0x10621e0>, _wm_selection=<ManagerSelection(clipboard=<gtk.Clipboard at remote 0x10622d0>, _xwindow=4194307L, atom='WM_S0') at remote 0x1062280>, _ewmh_window=<gtk.gdk.Window at remote 0x1062370>, _display=<gtk.gdk.Display at remote 0xeddfa0>, _windows_in_order=[<gtk.gdk.Window at remote 0x1062550>, <gtk.gdk.Window at remote 0x1187f50>, <gtk.gdk.Window at remote 0x11edbe0>], _name='Xpra', _world_window=<WorldWindow at remote 0x1062460>, _windows={<gtk.gdk.Window at remote 0x1062550>: <WindowModel(_input_field=1, _gproperties={'user-friendly-size': (122, 69), 'iconic': False, 'client-window': <gtk.gdk.Window at remote 0x1062550>, 'size-hints': <WMSizeHints(max_aspect_ratio=None, min_aspect_ratio=None, base_size=(19, 4), min_aspect=None, max_aspect=None, min_size=(25, 17), resize_inc=(6, 13), max_size=None) at remote 0x105aed0>, 'title': u'antoine@desktop:~/ddt', 'group-leader': None, 'client-machine': u'desktop', 'pid': 10...(truncated), kw=<optimized out>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:3959
#23 0x00007fd38de5d188 in pyg_closure_marshal (closure=0x1116fb0, return_value=0x7ffffd541b60, n_param_values=2, param_values=0xbf4970,
    invocation_hint=<optimized out>, marshal_data=<optimized out>) at pygtype.c:1216
#24 0x0000003154e0ea24 in g_closure_invoke (closure=0x1116fb0, return_value=0x7ffffd541b60, n_param_values=2, param_values=0xbf4970,
    invocation_hint=<optimized out>) at gclosure.c:774
#25 0x0000003154e20d17 in signal_emit_unlocked_R (node=<optimized out>, detail=0, instance=0xeb3900, emission_return=0x7ffffd541b60,
    instance_and_params=0xbf4970) at gsignal.c:3272
#26 0x0000003154e29750 in g_signal_emitv (instance_and_params=<optimized out>, signal_id=<optimized out>, detail=0, return_value=0x7ffffd541b60)
    at gsignal.c:2907
#27 0x00007fd38de549da in pygobject_emit (self=<optimized out>, args=('new-window', <WindowModel(_input_field=True, _gproperties={'iconic': False, 'client-window': <gtk.gdk.Window at remote 0x11edbe0>, 'size-hints':---Type <return> to continue, or q <return> to quit---
 None, 'title': u'Allinea DDT', 'icon-title': u'Allinea DDT', 'client-machine': None, 'pid': -1, 'state': frozenset([]), 'strut': None, 'icon-pixmap': None, 'window-type': ['_NET_WM_WINDOW_TYPE_SPLASH', '', '', '', '', '', '', ''], 'requested-position': (1730, 1185), 'transient-for': None, 'requested-size': (380, 190), 'protocols': [], 'icon': None}, parking_window=<gtk.gdk.Window at remote 0x1062140>, _geometry=(1730, 1185, 380, 190, 0), _damage_forward_handle=78L, _setup_done=True, startup_unmap_serial=None, client_window=<gtk.gdk.Window at remote 0x11edbe0>, corral_window=<gtk.gdk.Window at remote 0x11edcd0>, _composite=<CompositeHelper(_gproperties={}, _border_width=0, _damage_handle=4194552L, _window=<gtk.gdk.Window at remote 0x11edbe0>, _already_composited=False, _contents_handle=None, _listening_to=None) at remote 0x11edc80>) at remote 0x11edc30>)) at pygobject.c:1843
#28 0x00000036d76dffbb in call_function (oparg=<optimized out>, pp_stack=0x7ffffd541d48) at /usr/src/debug/Python-2.7.2/Python/ceval.c:4090
#29 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:2740
#30 0x00000036d76e15a5 in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=2, kws=0x1115750, kwcount=0, defs=0x0, defcount=0, closure=0x0) at /usr/src/debug/Python-2.7.2/Python/ceval.c:3330
#31 0x00000036d76dfadb in fast_function (nk=<optimized out>, na=2, n=<optimized out>, pp_stack=0x7ffffd541f38, func=<function at remote 0x104fde8>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:4186
#32 call_function (oparg=<optimized out>, pp_stack=0x7ffffd541f38) at /usr/src/debug/Python-2.7.2/Python/ceval.c:4111
#33 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:2740
#34 0x00000036d76e15a5 in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=2, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at /usr/src/debug/Python-2.7.2/Python/ceval.c:3330
#35 0x00000036d766dc2c in function_call (func=<function at remote 0x1050140>, arg=(<Wm(_root=<gtk.gdk.Window at remote 0x1062140>, _alt_display=<gtk.gdk.Display at remote 0x10621e0>, _wm_selection=<ManagerSelection(clipboard=<gtk.Clipboard at remote 0x10622d0>, _xwindow=4194307L, atom='WM_S0') at remote 0x1062280>, _ewmh_window=<gtk.gdk.Window at remote 0x1062370>, _display=<gtk.gdk.Display at remote 0xeddfa0>, _windows_in_order=[<gtk.gdk.Window at remote 0x1062550>, <gtk.gdk.Window at remote 0x1187f50>, <gtk.gdk.Window at remote 0x11edbe0>], _name='Xpra', _world_window=<WorldWindow at remote 0x1062460>, _windows={<gtk.gdk.Window at remote 0x1062550>: <WindowModel(_input_field=1, _gproperties={'user-friendly-size': (122, 69), 'iconic': False, 'client-window': <gtk.gdk.Window at remote 0x1062550>, 'size-hints': <WMSizeHints(max_aspect_ratio=None, min_aspect_ratio=None, base_size=(19, 4), min_aspect=None, max_aspect=None, min_size=(25, 17), resize_inc=(6, 13), max_size=None) at remote 0x105aed0>, 'title': u'antoine@desktop:~/ddt', 'group-leader': None, 'client-machine': u'desktop', 'pid': 10...(truncated), kw=0x0) at /usr/src/debug/Python-2.7.2/Objects/funcobject.c:526
#36 0x00000036d7649193 in PyObject_Call (func=<function at remote 0x1050140>, arg=<optimized out>, kw=<optimized out>)
    at /usr/src/debug/Python-2.7.2/Objects/abstract.c:2529
#37 0x00000036d7657dff in instancemethod_call (func=<function at remote 0x1050140>, arg=(<Wm(_root=<gtk.gdk.Window at remote 0x1062140>, _alt_display=<gtk.gdk.Display at remote 0x10621e0>, _wm_selection=<ManagerSelection(clipboard=<gtk.Clipboard at remote 0x10622d0>, _xwindow=4194307L, atom='WM_S0') at remote 0x1062280>, _ewmh_window=<gtk.gdk.Window at remote 0x1062370>, _display=<gtk.gdk.Display at remote 0xeddfa0>, _windows_in_order=[<gtk.gdk.Window at remote 0x1062550>, <gtk.gdk.Window at remote 0x1187f50>, <gtk.gdk.Window at remote 0x11edbe0>], _name='Xpra', _world_window=<WorldWindow at remote 0x1062460>, _windows={<gtk.gdk.Window at remote 0x1062550>: <WindowModel(_input_field=1, _gproperties={'user-friendly-size': (122, 69), 'iconic': False, 'client-window': <gtk.gdk.Window at remote 0x1062550>, 'size-hints': <WMSizeHints(max_aspect_ratio=None, min_aspect_ratio=None, base_size=(19, 4), min_aspect=None, max_aspect=None, min_size=(25, 17), resize_inc=(6, 13), max_size=None) at remote 0x105aed0>, 'title': u'antoine@desktop:~/ddt', 'group-leader': None, 'client-machine': u'desktop', 'pid': 10...(truncated), kw=0x0) at /usr/src/debug/Python-2.7.2/Objects/classobject.c:2578
#38 0x00000036d7649193 in PyObject_Call (func=<instancemethod at remote 0x119d9b0>, arg=<optimized out>, kw=<optimized out>)
    at /usr/src/debug/Python-2.7.2/Objects/abstract.c:2529
#39 0x00000036d76da457 in PyEval_CallObjectWithKeywords (func=<instancemethod at remote 0x119d9b0>, arg=
    (<AdHocStruct(delivered_to=<gtk.gdk.Window at remote 0x1062140>, send_event=0, window=<gtk.gdk.Window at remote 0x11edbe0>, type=20, display=<gtk.gdk.Display at remote 0xeddfa0>) at remote 0x11e31d0>,), kw=<optimized out>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:3959
#40 0x00007fd38de5cf2b in pyg_signal_class_closure_marshal (closure=<optimized out>, return_value=0x7ffffd542700, n_param_values=<optimized out>,
    param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=<optimized out>) at pygtype.c:1377
#41 0x0000003154e0ea24 in g_closure_invoke (closure=0x106a4b0, return_value=0x7ffffd542700, n_param_values=2, param_values=0x129f240,
    invocation_hint=<optimized out>) at gclosure.c:774
#42 0x0000003154e20b5c in signal_emit_unlocked_R (node=<optimized out>, detail=0, instance=0xeb3900, emission_return=0x7ffffd542700,
    instance_and_params=0x129f240) at gsignal.c:3310
#43 0x0000003154e29750 in g_signal_emitv (instance_and_params=<optimized out>, signal_id=<optimized out>, detail=0, return_value=0x7ffffd542700)
    at gsignal.c:2907
#44 0x00007fd38de549da in pygobject_emit (self=<optimized out>, args=
    ('child-map-request-event', <AdHocStruct(delivered_to=<gtk.gdk.Window at remote 0x1062140>, send_event=0, window=<gtk.gdk.Window at remote 0x11edbe0>, type=20, display=<gtk.gdk.Display at remote 0xeddfa0>) at remote 0x11e31d0>)) at pygobject.c:1843
#45 0x00000036d7649193 in PyObject_Call (func=<built-in method emit of Wm object at remote 0x1062190>, arg=<optimized out>, kw=<optimized out>)
    at /usr/src/debug/Python-2.7.2/Objects/abstract.c:2529
#46 0x00007fd38bb0e1d2 in __pyx_pf_8wimpiggy_8lowlevel_8bindings_76_maybe_send_event (__pyx_self=0x0, __pyx_args=
    (<gtk.gdk.Window at remote 0x1062140>, 'child-map-request-event', <AdHocStruct(delivered_to=<gtk.gdk.Window at remote 0x1062140>, send_event=0, window=<gtk.gdk.Window at remote 0x11edbe0>, type=20, display=<gtk.gdk.Display at remote 0xeddfa0>) at remote 0x11e31d0>), __pyx_kwds=0x0)
    at wimpiggy/lowlevel/bindings.c:20284
#47 0x00000036d7649193 in PyObject_Call (func=<built-in function _maybe_send_event>, arg=<optimized out>, kw=<optimized out>)
    at /usr/src/debug/Python-2.7.2/Objects/abstract.c:2529
#48 0x00007fd38bb0fc04 in __pyx_pf_8wimpiggy_8lowlevel_8bindings_77_route_event (__pyx_self=0x0, __pyx_args=
    (<AdHocStruct(delivered_to=<gtk.gdk.Window at remote 0x1062140>, send_event=0, window=<gtk.gdk.Window at remote 0x11edbe0>, type=20, display=<gtk.gdk.Display at remote 0xeddfa0>) at remote 0x11e31d0>, None, 'child-map-request-event'), __pyx_kwds=0x0) at wimpiggy/lowlevel/bindings.c:20689
#49 0x00000036d7649193 in PyObject_Call (func=<built-in function _route_event>, arg=<optimized out>, kw=<optimized out>)
    at /usr/src/debug/Python-2.7.2/Objects/abstract.c:2529
#50 0x00007fd38bb1b210 in __pyx_f_8wimpiggy_8lowlevel_8bindings_x_event_filter (__pyx_v_e_gdk=0x7ffffd542d40, __pyx_v_gdk_event=0x1298de0,
    __pyx_v_userdata=0x0) at wimpiggy/lowlevel/bindings.c:23338
#51 0x000000315725f3ee in gdk_event_apply_filters (filters=<optimized out>, event=<optimized out>, xevent=<optimized out>) at gdkevents-x11.c:356
#52 gdk_event_translate (display=0xf77230 [GdkDisplayX11], event=0x1298de0, xevent=0x7ffffd542d40, return_exposes=0) at gdkevents-x11.c:927
#53 0x0000003157261fa6 in _gdk_events_queue (display=0xf77230 [GdkDisplayX11]) at gdkevents-x11.c:2310
#54 0x000000315726204e in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at gdkevents-x11.c:2371
#55 0x0000003154644acd in g_main_dispatch (context=0xf809c0) at gmain.c:2441
#56 g_main_context_dispatch (context=0xf809c0) at gmain.c:3011
#57 0x00000031546452c8 in g_main_context_iterate (context=0xf809c0, block=<optimized out>, dispatch=1, self=<optimized out>) at gmain.c:3089
#58 0x0000003154645815 in g_main_loop_run (loop=0x11c81c0) at gmain.c:3297
#59 0x000000315774bbb7 in IA__gtk_main () at gtkmain.c:1256
#60 0x00007fd38d095fa6 in _wrap_gtk_main (self=<optimized out>) at ./gtk.override:1240
#61 0x00000036d76dfb13 in call_function (oparg=<optimized out>, pp_stack=0x7ffffd5430e8) at /usr/src/debug/Python-2.7.2/Python/ceval.c:4074
#62 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:2740
#63 0x00000036d76e0580 in fast_function (nk=<optimized out>, na=1, n=<optimized out>, pp_stack=0x7ffffd543228, func=<function at remote 0x1065140>)
    at /usr/src/debug/Python-2.7.2/Python/ceval.c:4176
#64 call_function (oparg=<optimized out>, pp_stack=0x7ffffd543228) at /usr/src/debug/Python-2.7.2/Python/ceval.c:4111
#65 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:2740
#66 0x00000036d76e15a5 in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=5,
    kws=0xc979a0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at /usr/src/debug/Python-2.7.2/Python/ceval.c:3330
#67 0x00000036d76dfadb in fast_function (nk=<optimized out>, na=5, n=<optimized out>, pp_stack=0x7ffffd543418, func=
    <function at remote 0x7fd38dc2c398>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:4186
#68 call_function (oparg=<optimized out>, pp_stack=0x7ffffd543418) at /usr/src/debug/Python-2.7.2/Python/ceval.c:4111
#69 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:2740
#70 0x00000036d76e15a5 in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=2,
    kws=0xb46220, kwcount=0, defs=0x0, defcount=0, closure=0x0) at /usr/src/debug/Python-2.7.2/Python/ceval.c:3330
#71 0x00000036d76dfadb in fast_function (nk=<optimized out>, na=2, n=<optimized out>, pp_stack=0x7ffffd543608, func=
    <function at remote 0x7fd38dc26488>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:4186
#72 call_function (oparg=<optimized out>, pp_stack=0x7ffffd543608) at /usr/src/debug/Python-2.7.2/Python/ceval.c:4111
#73 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/Python-2.7.2/Python/ceval.c:2740
#74 0x00000036d76e15a5 in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=0,
    kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at /usr/src/debug/Python-2.7.2/Python/ceval.c:3330
#75 0x00000036d76e16d2 in PyEval_EvalCode (co=<optimized out>, globals=<optimized out>, locals=<optimized out>)
    at /usr/src/debug/Python-2.7.2/Python/ceval.c:689
#76 0x00000036d76fb9ec in run_mod (mod=<optimized out>, filename=<optimized out>, globals=
    {'GPollableInputStream': <type at remote 0xcd4b30>, '__builtins__': <module at remote 0x7fd396bcaad0>, '__file__': '/usr/bin/xpra', 'xpra': <module at remote 0x7fd396b036a8>, '__package__': None, 'sys': <module at remote 0x7fd396bcab78>, 'GInitiallyUnowned': <GObjectMeta(__gtype__=<gobject.GType at remote 0x7fd38ccc6810>, __doc__=<gobject.GObject.__doc__ at remote 0x7fd396b8d0d0>, __module__='gtk') at remote 0xd707d0>, '__name__': '__main__', 'GPollableOutputStream': <type at remote 0xd03a10>, '__doc__': None}, locals=
    {'GPollableInputStream': <type at remote 0xcd4b30>, '__builtins__': <module at remote 0x7fd396bcaad0>, '__file__': '/usr/bin/xpra', 'xpra': <module at remote 0x7fd396b036a8>, '__package__': None, 'sys': <module at remote 0x7fd396bcab78>, 'GInitiallyUnowned': <GObjectMeta(__gtype__=<gobject.GType at remote 0x7fd38ccc6810>, __doc__=<gobject.GObject.__doc__ at remote 0x7fd396b8d0d0>, __module__='gtk') at remote 0xd707d0>, '__name__': '__main__', 'GPollableOutputStream': <type at remote 0xd03a10>, '__doc__': None}, flags=<optimized out>, arena=<optimized out>)
    at /usr/src/debug/Python-2.7.2/Python/pythonrun.c:1354
#77 0x00000036d76fc7f0 in PyRun_FileExFlags (fp=0xb0ab60, filename=0x7ffffd5443fe "/usr/bin/xpra", start=<optimized out>, globals=
    {'GPollableInputStream': <type at remote 0xcd4b30>, '__builtins__': <module at remote 0x7fd396bcaad0>, '__file__': '/usr/bin/xpra', 'xpra': <module at remote 0x7fd396b036a8>, '__package__': None, 'sys': <module at remote 0x7fd396bcab78>, 'GInitiallyUnowned': <GObjectMeta(__gtype__=<gobject.GType at remote 0x7fd38ccc6810>, __doc__=<gobject.GObject.__doc__ at remote 0x7fd396b8d0d0>, __module__='gtk') at remote 0xd707d0>, '__name__': '__main__', 'GPollableOutputStream': <type at remote 0xd03a10>, '__doc__': None}, locals=
    {'GPollableInputStream': <type at remote 0xcd4b30>, '__builtins__': <module at remote 0x7fd396bcaad0>, '__file__': '/usr/bin/xpra', 'xpra': <module at remote 0x7fd396b036a8>, '__package__': None, 'sys': <module at remote 0x7fd396bcab78>, 'GInitiallyUnowned': <GObjectMeta(__gtype__=<gobject.GType at remote 0x7fd38ccc6810>, __doc__=<gobject.GObject.__doc__ at remote 0x7fd396b8d0d0>, __module__='gtk') at remote 0xd707d0>, '__name__': '__main__', 'GPollableOutputStream': <type at remote 0xd03a10>, '__doc__': None}, closeit=1, flags=0x7ffffd543930)
    at /usr/src/debug/Python-2.7.2/Python/pythonrun.c:1340
#78 0x00000036d76fd26f in PyRun_SimpleFileExFlags (fp=0xb0ab60, filename=0x7ffffd5443fe "/usr/bin/xpra", closeit=1, flags=0x7ffffd543930)
    at /usr/src/debug/Python-2.7.2/Python/pythonrun.c:944
#79 0x00000036d770e745 in Py_Main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/Python-2.7.2/Modules/main.c:599
#80 0x00000036c722169d in __libc_start_main (main=0x400620 <main>, argc=5, ubp_av=0x7ffffd543a58, init=<optimized out>, fini=<optimized out>,
    rtld_fini=<optimized out>, stack_end=0x7ffffd543a48) at libc-start.c:226
#81 0x0000000000400651 in _start ()

Tue, 07 Feb 2012 19:57:44 GMT - Antoine Martin:

The crash comes from their splash screen, here is another way of getting past it:

DDT_NO_SPLASH=1 ./bin/ddt

I really don't know what the splash screen does to crash the Xvfb.


Wed, 08 Feb 2012 14:25:49 GMT - Txibilis:

Hi,

the DDT_NO_SPLASH option works on my side as well, and it is quite convenient, so as far as I'm concerned, this is not a problem anymore.

Thanks a lot, Ángel de Vicente


Wed, 08 Feb 2012 14:51:45 GMT - Antoine Martin: status changed; resolution set

OK, I would like to try to find what the splash screen does to crash the Xvfb (I even tried Xdummy to see if it would help - no change), but without the source this is going to be difficult so I am closing this ticket for now.


Mon, 20 Feb 2012 19:18:53 GMT - Antoine Martin: milestone changed; version deleted


Wed, 29 Feb 2012 16:10:47 GMT - Antoine Martin: status changed; resolution deleted

Done some more investigation on this and it looks like some xatoms are mangled or missing causing all calls to XGetWindowAttributes and XGetGeometry to fail.

Now I have a dirty patch which just ignores those windows, this allows one to run ddt without ever seeing the splash screen since we ignore the whole window:

--- src/xpra/server.py	(revision 572)
+++ src/xpra/server.py	(working copy)
@@ -866,10 +866,16 @@
     _window_export_properties = ("title", "size-hints")
     def _add_new_window(self, window):
         log.debug("Discovered new ordinary window: %s", window)
+        client_window = window.get_property("client-window")
+        log.info("getting dimensions for %s", client_window)
+        try:
+            (x, y, w, h, _) = trap.call_synced(client_window.get_geometry)
+        except XError:
+            log.error("cannot get geometry of new window!", exc_info=True)
+            return
         self._add_new_window_common(window)
         for prop in self._window_export_properties:
             window.connect("notify::%s" % prop, self._update_metadata)
-        (x, y, w, h, _) = window.get_property("client-window").get_geometry()
         self._desktop_manager.add_window(window, x, y, w, h)
         self._send_new_window_packet(window)

I don't want to merge this, so I'll try to figure out which properties are messed up instead.


Thu, 01 Mar 2012 11:49:48 GMT - Antoine Martin:

This is a better fix: we detect that the window is broken in the same place where we normally do it (during setup):

Index: wimpiggy/window.py
===================================================================
--- wimpiggy/window.py	(revision 559)
+++ wimpiggy/window.py	(working copy)
@@ -513,10 +513,15 @@
             client_size = self.client_window.get_geometry()[2:4]
             self.corral_window.resize(*client_size)
             self.client_window.show_unraised()
+            self.client_window.get_geometry()
         try:
             trap.call(setup_client)
         except XError, e:
             raise Unmanageable, e
+        try:
+            trap.call(self.client_window.get_geometry)
+        except XError, e:
+            raise Unmanageable, e
         self._setup_done = True
     def prop_get(self, key, type, ignore_errors=False):

With this in place, the splash screen simply does not show up, and all you get are a few warnings about broken atoms in the logs.

I wished I could figure out why gtk crashes with this window, the first call to get_geometry normally succeeds but the second one fails!? Looks like something to do with call_synced vs call_asynced and gtk.gdk.flush() - but switching to sync mode crashes..

I will try to get to the bottom of this problem before committing any changes.


Thu, 01 Mar 2012 15:49:01 GMT - Antoine Martin: status changed; resolution set

r577 causes broken windows to be discarded sooner (almost identical to patch in comment:9)

I no longer have a valid license to test, but just testing with the splash screen and the server no longer dies.

Note: the root cause of the crash probably has not been fixed, so we may need to revisit this.


Sat, 23 Jan 2021 04:44:44 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/71