Opened 2 years ago
Closed 2 years ago
#2025 closed defect (fixed)
client hangs handling popup window
Reported by: | Antoine Martin | Owned by: | Antoine Martin |
---|---|---|---|
Priority: | blocker | Milestone: | 2.5 |
Component: | client | Version: | 2.4.x |
Keywords: | Cc: |
Description
Running the commented out example from r20917 then stopping it with a control-c can hang the client (fedora 29 + gnome shell), most of the time... and enabling -d all
makes the crash disappear.
The window that's causing this hang is:
process_new_common: [22, 0, 0, 52, 12, \ {'xid': '0xe0001c', 'title': 'min=(50, 10) - max=(50, 10)', 'client-machine': 'desktop', \ 'pid': 31727, 'group-leader-xid': 14680065, 'window-type': ('NORMAL',), 'override-redirect': True}], \ metadata={'window-type': ('NORMAL',), 'xid': '0xe0001c', 'title': 'min=(50, 10) - max=(50, 10)', \ 'override-redirect': True, 'client-machine': 'desktop', 'pid': 31727, 'group-leader-xid': 14680065}, OR=True
Change History (4)
comment:1 Changed 2 years ago by
Status: | new → assigned |
---|
comment:2 Changed 2 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
- r20929: makes it possible to disable the signal watcher code:
XPRA_SIGNAL_WATCHER=0 xpra start ...
- r20930: refactor the kill_signalwatcher code into a method we can re-use, make sure we stop watching the pipe as soon as we decide to stop the watcher
- r20931: reap children immediately, fire the callbacks from the main thread later (the actual fix)
- r20932: re-enable the signal watcher by default
comment:4 Changed 2 years ago by
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
So, the only thing that really seems to prevent the crash is to disable the clipboard...
The changes above are worth keeping anyway.
There is no hang with GTK3, probably because clipboard support is more limited there: #1589, so r20941 disables the signal watcher code with python2.
The real solution to all this instability is to get rid of the GTK clipboard glue: #812.
Note: See
TracTickets for help on using
tickets.
Looks like this is clipboard related:
Interestingly, we have had issues with
pygtk_main_watch_check
in the past: glib/gtk + twisted main loop is eating up all CPU when a subprocess terminates. (https://winswitch.org/trac/ticket/90)And that's also when a process terminates. Coincidence?