xpra has crashed a few times. It's always the same setting:
1) I'm running gnome-terminal from a remote machine with xpra. 2) From that gnome-terminal I run "ssh -Y yet-another-machine firefox" to run firefox from a remote machine that does not have xpra installed 3) I select some text in firefox
=> all xpra windows disappear.
The
Xvfb-for-Xpra-:7 +extension Composite -screen 0 3840x2560x24+32 -noreset -auth /home/lindi/.Xauthority :7
process and its clients seem to be alive but xpra is gone. I have to use "DISPLAY=:7 x11vnc & xvncviewer :0" to shut them down properly.
Full $HOME/.xpra/lindi1-7.log
is attached. I'm running svn r67.
$HOME/.xpra/lindi1-7.log after xpra has died
The fact that this is reproducible should make it easier to debug and fix.
It would be interresting to know if the "--no-clipboard
" server flag prevents the crash, it should. (not a solution obviously, just to narrow it down)
FYI: you should be able to use the xpra flag "--use-display
" to re-start the xpra server against the existing Xvfb display, no need for VNC.
Antoine, hey, I didn't notice that you had commented on the bug! Can you check if trac is configured to send email alerts?
while true; do
xpra --no-daemon --use-display start :7 sleep 3
done
allows me to recover from crashes.
Using --no-clipboard on both server and client side does not seem to have any effect.
More concrete steps to reproduce:
1) start firefox 2) goto www.google.com 3) select some text (do not copy it or anything, just select) 4) drag the selected text with mouse a few times to random places on the page
=> xpra prints
File "/usr/lib/python2.6/dist-packages/wimpiggy/util.py", line 25, in do_get_property return getattr(self, getter)(pspec.name) File "/usr/lib/python2.6/dist-packages/wimpiggy/composite.py", line 85, in do_get_property_contents_handle assert self._listening_to is None AssertionError wtf, pixmap is None? Traceback (most recent call last): File "/usr/lib/python2.6/dist-packages/wimpiggy/util.py", line 25, in do_get_property return getattr(self, getter)(pspec.name) File "/usr/lib/python2.6/dist-packages/wimpiggy/composite.py", line 85, in do_get_property_contents_handle assert self._listening_to is None (...) AssertionError wtf, pixmap is None? Traceback (most recent call last): File "/usr/lib/python2.6/dist-packages/wimpiggy/util.py", line 25, in do_get_property return getattr(self, getter)(pspec.name) File "/usr/lib/python2.6/dist-packages/wimpiggy/composite.py", line 85, in do_get_property_contents_handle assert self._listening_to is None AssertionError wtf, pixmap is None? Traceback (most recent call last): File "/usr/lib/python2.6/dist-packages/wimpiggy/util.py", line 25, in do_get_property return getattr(self, getter)(pspec.name) File "/usr/lib/python2.6/dist-packages/wimpiggy/composite.py", line 85, in do_get_property_contents_handle assert self._listening_to is None AssertionError wtf, pixmap is None? The program 'xpra' received an X Window System error. This probably reflects a bug in the program. The error was 'BadWindow (invalid Window parameter)'. (Details: serial 25634 error_code 3 request_code 12 minor_code 0) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.)
Got this backtrace when running with GDK_SYNCHRONIZE=1
:
Program received signal SIGABRT, Aborted. 0x00000034eb0352d5 in raise () from /lib64/libc.so.6 (gdb) bt #0 0x00000034eb0352d5 in raise () from /lib64/libc.so.6 #1 0x00000034eb036beb in abort () from /lib64/libc.so.6 #2 0x00000034ed04b5ee in g_logv () from /lib64/libglib-2.0.so.0 #3 0x00000034ed04b682 in g_log () from /lib64/libglib-2.0.so.0 #4 0x00000034f846ab9b in ?? () from /usr/lib64/libgdk-x11-2.0.so.0 #5 0x00000034ee84810f in _XError () from /usr/lib64/libX11.so.6 #6 0x00000034ee844f91 in ?? () from /usr/lib64/libX11.so.6 #7 0x00000034ee844fd5 in ?? () from /usr/lib64/libX11.so.6 #8 0x00000034ee845de0 in _XReply () from /usr/lib64/libX11.so.6 #9 0x00000034ee83b240 in XQueryPointer () from /usr/lib64/libX11.so.6 #10 0x00000034f847979a in ?? () from /usr/lib64/libgdk-x11-2.0.so.0 #11 0x00000034f8420960 in ?? () from /usr/lib64/libgdk-x11-2.0.so.0 #12 0x00000034f844350f in gdk_window_get_pointer () from /usr/lib64/libgdk-x11-2.0.so.0 #13 0x00007f7502392b10 in ?? () from /usr/lib64/python2.7/site-packages/gtk-2.0/gtk/_gtk.so #14 0x00000034fc4df592 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #15 0x00000034fc4e1125 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #16 0x00000034fc4dfa86 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #17 0x00000034fc4e1125 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #18 0x00000034fc4dfa86 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #19 0x00000034fc4e0098 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #20 0x00000034fc4e0098 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #21 0x00000034fc4e0098 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #22 0x00000034fc4e1125 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #23 0x00000034fc46daa3 in ?? () from /usr/lib64/libpython2.7.so.1.0 #24 0x00000034fc448fe3 in PyObject_Call () from /usr/lib64/libpython2.7.so.1.0 #25 0x00000034fc4db870 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #26 0x00000034fc4e1125 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #27 0x00000034fc46d9ac in ?? () from /usr/lib64/libpython2.7.so.1.0 #28 0x00000034fc448fe3 in PyObject_Call () from /usr/lib64/libpython2.7.so.1.0 #29 0x00000034fc4d9f47 in PyEval_CallObjectWithKeywords () from /usr/lib64/libpython2.7.so.1.0 #30 0x00007f7502cac67b in _pyglib_handler_marshal () from /usr/lib64/libpyglib-2.0-python.so.0 #31 0x00000034ed04410b in ?? () from /lib64/libglib-2.0.so.0 #32 0x00000034ed0427ed in g_main_context_dispatch () from /lib64/libglib-2.0.so.0 #33 0x00000034ed042fc8 in ?? () from /lib64/libglib-2.0.so.0 #34 0x00000034ed04360d in g_main_loop_run () from /lib64/libglib-2.0.so.0 #35 0x00000034f7d4c007 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0 #36 0x00007f7502382fa6 in ?? () from /usr/lib64/python2.7/site-packages/gtk-2.0/gtk/_gtk.so #37 0x00000034fc4df592 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #38 0x00000034fc4e0098 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #39 0x00000034fc4e1125 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #40 0x00000034fc4dfa86 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #41 0x00000034fc4e0098 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #42 0x00000034fc4e1125 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #43 0x00000034fc4e1252 in PyEval_EvalCode () from /usr/lib64/libpython2.7.so.1.0 #44 0x00000034fc4fb3ac in ?? () from /usr/lib64/libpython2.7.so.1.0 #45 0x00000034fc4fc1e0 in PyRun_FileExFlags () from /usr/lib64/libpython2.7.so.1.0 #46 0x00000034fc4fcc5f in PyRun_SimpleFileExFlags () from /usr/lib64/libpython2.7.so.1.0 #47 0x00000034fc50e285 in Py_Main () from /usr/lib64/libpython2.7.so.1.0 #48 0x00000034eb02139d in __libc_start_main () from /lib64/libc.so.6 #49 0x0000000000400651 in _start () (gdb) #0 0x00000034eb0352d5 in raise () from /lib64/libc.so.6 #1 0x00000034eb036beb in abort () from /lib64/libc.so.6 #2 0x00000034ed04b5ee in g_logv () from /lib64/libglib-2.0.so.0 #3 0x00000034ed04b682 in g_log () from /lib64/libglib-2.0.so.0 #4 0x00000034f846ab9b in ?? () from /usr/lib64/libgdk-x11-2.0.so.0 #5 0x00000034ee84810f in _XError () from /usr/lib64/libX11.so.6 #6 0x00000034ee844f91 in ?? () from /usr/lib64/libX11.so.6 #7 0x00000034ee844fd5 in ?? () from /usr/lib64/libX11.so.6 #8 0x00000034ee845de0 in _XReply () from /usr/lib64/libX11.so.6 #9 0x00000034ee83b240 in XQueryPointer () from /usr/lib64/libX11.so.6 #10 0x00000034f847979a in ?? () from /usr/lib64/libgdk-x11-2.0.so.0 #11 0x00000034f8420960 in ?? () from /usr/lib64/libgdk-x11-2.0.so.0 #12 0x00000034f844350f in gdk_window_get_pointer () from /usr/lib64/libgdk-x11-2.0.so.0 #13 0x00007f7502392b10 in ?? () from /usr/lib64/python2.7/site-packages/gtk-2.0/gtk/_gtk.so #14 0x00000034fc4df592 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #15 0x00000034fc4e1125 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #16 0x00000034fc4dfa86 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #17 0x00000034fc4e1125 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #18 0x00000034fc4dfa86 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #19 0x00000034fc4e0098 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #20 0x00000034fc4e0098 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #21 0x00000034fc4e0098 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #22 0x00000034fc4e1125 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #23 0x00000034fc46daa3 in ?? () from /usr/lib64/libpython2.7.so.1.0 #24 0x00000034fc448fe3 in PyObject_Call () from /usr/lib64/libpython2.7.so.1.0 #25 0x00000034fc4db870 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #26 0x00000034fc4e1125 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #27 0x00000034fc46d9ac in ?? () from /usr/lib64/libpython2.7.so.1.0 #28 0x00000034fc448fe3 in PyObject_Call () from /usr/lib64/libpython2.7.so.1.0 #29 0x00000034fc4d9f47 in PyEval_CallObjectWithKeywords () from /usr/lib64/libpython2.7.so.1.0 #30 0x00007f7502cac67b in _pyglib_handler_marshal () from /usr/lib64/libpyglib-2.0-python.so.0 #31 0x00000034ed04410b in ?? () from /lib64/libglib-2.0.so.0 #32 0x00000034ed0427ed in g_main_context_dispatch () from /lib64/libglib-2.0.so.0 #33 0x00000034ed042fc8 in ?? () from /lib64/libglib-2.0.so.0 #34 0x00000034ed04360d in g_main_loop_run () from /lib64/libglib-2.0.so.0 #35 0x00000034f7d4c007 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0 #36 0x00007f7502382fa6 in ?? () from /usr/lib64/python2.7/site-packages/gtk-2.0/gtk/_gtk.so #37 0x00000034fc4df592 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #38 0x00000034fc4e0098 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #39 0x00000034fc4e1125 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #40 0x00000034fc4dfa86 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #41 0x00000034fc4e0098 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #42 0x00000034fc4e1125 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #43 0x00000034fc4e1252 in PyEval_EvalCode () from /usr/lib64/libpython2.7.so.1.0 #44 0x00000034fc4fb3ac in ?? () from /usr/lib64/libpython2.7.so.1.0 #45 0x00000034fc4fc1e0 in PyRun_FileExFlags () from /usr/lib64/libpython2.7.so.1.0 #46 0x00000034fc4fcc5f in PyRun_SimpleFileExFlags () from /usr/lib64/libpython2.7.so.1.0 #47 0x00000034fc50e285 in Py_Main () from /usr/lib64/libpython2.7.so.1.0 #48 0x00000034eb02139d in __libc_start_main () from /lib64/libc.so.6 #49 0x0000000000400651 in _start ()
So it looks like a gtk bug as this is firing directly from the gtk main loop.
Filed an upstream bug gnome bug 653625
There were some fixes in this area and I can no longer reproduce this bug at all. Feel free to re-open if you can reproduce with trunk + a recent distro.
See also #64 comments 32 and below
Re-opening as this seems more easily reproducible without running OpenBSD
!
Hmm, I've just tried repeatedly to get the crash with r577:
ssh -X
to a Linux box and start firefox - (similar setup to #64)
ssh -X
)
Still no luck, getting any crashes. Can you still reproduce it? (I did get one problem once when I dropped the selection onto the local system where the firefox window seemed to lose focus with no way of regaining it - but no crashes)
Also, I may have been wrong in thinking that this code fires directly from the main loop, using gdb with the python debug symbols may reveal to us where the get_pointer() call is coming from.
Please see Debugging with Gdb: on Debian all you need is the pythonN.M-dbg
package then gdb python $PID
Doesn't seem to happen today, r585
will re-open if this re-occurs.
ticket has been moved to: https://github.com/Xpra-org/xpra/issues/3