xpra icon
Bug tracker and wiki

Opened 7 years ago

Closed 6 years ago

#3 closed defect (fixed)

xpra crashed while selecting text: The program 'xpra' received an X Window System error.

Reported by: Timo Juhani Lindfors Owned by: Antoine Martin
Priority: major Milestone: 0.1
Component: server Version: 0.1.0
Keywords: Cc:

Description (last modified by Antoine Martin)

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.

Attachments (1)

lindi1-7.log (615.8 KB) - added by Timo Juhani Lindfors 7 years ago.
$HOME/.xpra/lindi1-7.log after xpra has died

Download all attachments as: .zip

Change History (10)

Changed 7 years ago by Timo Juhani Lindfors

Attachment: lindi1-7.log added

$HOME/.xpra/lindi1-7.log after xpra has died

comment:1 Changed 7 years ago by Antoine Martin

Description: modified (diff)
Status: newaccepted

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.

Last edited 7 years ago by Antoine Martin (previous) (diff)

comment:2 Changed 7 years ago by Timo Juhani Lindfors

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.)
Last edited 7 years ago by Antoine Martin (previous) (diff)

comment:3 Changed 7 years ago by Antoine Martin

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.

comment:4 Changed 7 years ago by Antoine Martin

Filed an upstream bug gnome bug 653625

comment:5 Changed 7 years ago by Antoine Martin

Resolution: worksforme
Status: acceptedclosed

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.

comment:6 Changed 6 years ago by Antoine Martin

Milestone: 0.1
Resolution: worksforme
Status: closedreopened

See also #64 comments 32 and below

Re-opening as this seems more easily reproducible without running OpenBSD!

comment:7 Changed 6 years ago by Antoine Martin

Hmm, I've just tried repeatedly to get the crash with r577:

  • with a win32 xpra client connecting to an openbsd server with an xterm where I ssh -X to a Linux box and start firefox - (similar setup to #64)
  • with a linux box to another linux box (via xpra) and back (via 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

comment:8 Changed 6 years ago by Timo Juhani Lindfors

Doesn't seem to happen today, r585

comment:9 Changed 6 years ago by Antoine Martin

Resolution: fixed
Status: reopenedclosed
Version: 0.1.0

will re-open if this re-occurs.

Note: See TracTickets for help on using tickets.