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
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.
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 ()
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.
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
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.
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.
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.
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.
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/71