xpra icon
Bug tracker and wiki

Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#441 closed defect (fixed)

0.10.5 can't connect to 0.10.4

Reported by: onlyjob Owned by: Antoine Martin
Priority: blocker Milestone: 0.10
Component: client Version:
Keywords: Cc:

Description

After upgrading client from 0.10.4 to 0.10.5 I can't attach to session still running in 0.10.4 -- xpra appears to establish connection but then immediately crash:

2013-10-15 00:29:37,065 Attached to ssh:######:11 (press Control-C to detach)

2013-10-15 00:29:37,722 error in write format loop
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/xpra/net/protocol.py", line 270, in _write_format_thread_loop
    self._add_packet_to_queue(*self._get_packet_cb())
  File "/usr/lib/python2.7/dist-packages/xpra/net/protocol.py", line 280, in _add_packet_to_queue
    chunks, proto_flags = self.encode(packet)
  File "/usr/lib/python2.7/dist-packages/xpra/net/protocol.py", line 413, in encode
    main_packet, proto_version = self._encoder(packet)
  File "/usr/lib/python2.7/dist-packages/xpra/net/protocol.py", line 364, in rencode
    return  rencode_dumps(data), Protocol.FLAGS_RENCODE
  File "rencode.pyx", line 324, in xpra.net.rencode._rencode.dumps (xpra/net/rencode/rencode.c:4023)
  File "rencode.pyx", line 304, in xpra.net.rencode._rencode.encode (xpra/net/rencode/rencode.c:3832)
  File "rencode.pyx", line 244, in xpra.net.rencode._rencode.encode_list (xpra/net/rencode/rencode.c:2851)
  File "rencode.pyx", line 307, in xpra.net.rencode._rencode.encode (xpra/net/rencode/rencode.c:3857)
  File "rencode.pyx", line 256, in xpra.net.rencode._rencode.encode_dict (xpra/net/rencode/rencode.c:3126)
  File "rencode.pyx", line 310, in xpra.net.rencode._rencode.encode (xpra/net/rencode/rencode.c:3883)
Exception: type <class 'xpra.client.gtk2.client.gtk.gdk.ScreenX11'> not handled
2013-10-15 00:29:37,734 TrayBacking does not have any pixels / format!
2013-10-15 00:29:37,735 TrayBacking does not have any pixels / format!
2013-10-15 00:29:37,735 TrayBacking does not have any pixels / format!
2013-10-15 00:29:37,735 TrayBacking does not have any pixels / format!
2013-10-15 00:29:37,735 TrayBacking does not have any pixels / format!
2013-10-15 00:29:37,739 connection lost: error in network packet write/format: type <class 'xpra.client.gtk2.client.gtk.gdk.ScreenX11'> not handled
2013-10-15 00:29:37,740 connection closed after 37 packets received (0.5M bytes) and 37 packets sent (29K bytes)
2013-10-15 00:29:37,742 Connection lost

I use RAW encoding by default. Everything works when I downgrade client back to 0.10.4.

Change History (8)

comment:1 Changed 6 years ago by Antoine Martin

Component: coreclient
Milestone: 0.10
Owner: changed from Antoine Martin to Antoine Martin
Priority: majorblocker
Status: newassigned

Note: this is the packet encoding, not picture encoding. It may work if you force it to use the old (slower) bencoder instead:

XPRA_USE_BENCODER=1 xpra attach ..

That's an odd bug caused by r4445: we previously dropped invalid data rather than "rencode"ing it causing all sorts of intractable problems, this changeset makes it error out. Erroring out is the right thing to do as the previous behaviour (not returning any value) causes very hard to debug issues: I spent about half a day figuring out that the resulting stream may or may not decode as a valid "rencode"d stream, and it may or may not have all the items we put in it originally... hell!

Which means that we now have to figure out why invalid data ends up in the encoding stream... The fact that we see:

Attached to ...

Means that it has completed the handshake, so the server has sent the hello back. The item in it we do not expect is a ScreenX11, so I suspect that it has something to do with the screen_size_changed callback. Not sure why it would fire right after you connect though...

Can please you post the debug messages that happen just before the error? (whilst I hunt for the real bug)
As for r4493, we will log the packet type before trying to encode it, which will make future debugging easier.

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

comment:2 Changed 6 years ago by Antoine Martin

To make it stand out, I've used (no need for -d all):

--- src/xpra/client/gtk2/client.py	(revision 4494)
+++ src/xpra/client/gtk2/client.py	(working copy)
@@ -286,7 +286,7 @@
                         work_x, work_y, work_width, work_height)
             screen_sizes.append(item)
             i += 1
-        log("get_screen_sizes()=%s", screen_sizes)
+        log.info("get_screen_sizes()=%s", screen_sizes)
         return screen_sizes
 
 

And this is what I see on my system:

get_screen_sizes()=[(':0.0', 2560, 1600, 339, 212, [('DFP2', 0, 0, 2560, 1600, 646, 406)], 0, 0, 2560, 1575)]

Nothing unusual here... And I really don't see where we could be sending the

gtk.gdk.ScreenX11

Even more weird is the namespace it is showing for it:

xpra.client.gtk2.client.gtk.gdk.ScreenX11

What is that about!?

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

comment:3 Changed 6 years ago by onlyjob

XPRA_USE_BENCODER=1 had no effect; here is a tail of client's (0.10.5) log taken with "-d all" on unsuccessful attach:

2013-10-15 13:51:08,391 Got configure event: <gtk.gdk.Event at 0x39be6e8: GDK_CONFIGURE x=20, y=175, width=1272, height=941>                                           
2013-10-15 13:51:08,392 xget_u32_property(<gtk.gdk.Window object at 0x3a90d20 (GdkWindow at 0x3d11120)>, _NET_WM_DESKTOP)=0                                            
2013-10-15 13:51:08,392 do_get_workspace() found value=0 from <gtk.gdk.Window object at 0x3a90d20 (GdkWindow at 0x3d11120)> / _NET_WM_DESKTOP                          
2013-10-15 13:51:08,393 configure-window for wid=9111 with client props={'screen': 0, 'workspace': 0, 'maximized': False}                                              
2013-10-15 13:51:08,393 add_packet_to_queue(configure-window ...)                                                                                                      
2013-10-15 13:51:08,502 GTKStatusIconTray.get_geometry() <gtk.StatusIcon object at 0x3a889b0 (GtkStatusIcon at 0x3afb1c0)>.get_geometry()=(<gtk.gdk.ScreenX11 object at 0x3a90d20 (GdkScreenX11 at 0x22db0f0)>, gtk.gdk.Rectangle(0, 0, 200, 200), <enum GTK_ORIENTATION_HORIZONTAL of type GtkOrientation>)                                  
2013-10-15 13:51:08,504 error in write format loop                                                                                                                     
Traceback (most recent call last):                                                                                                                                     
  File "/usr/lib/python2.7/dist-packages/xpra/net/protocol.py", line 270, in _write_format_thread_loop                                                                 
    self._add_packet_to_queue(*self._get_packet_cb())                                                                                                                  
  File "/usr/lib/python2.7/dist-packages/xpra/net/protocol.py", line 280, in _add_packet_to_queue                                                                      
    chunks, proto_flags = self.encode(packet)                                                                                                                          
  File "/usr/lib/python2.7/dist-packages/xpra/net/protocol.py", line 413, in encode                                                                                    
    main_packet, proto_version = self._encoder(packet)                                                                                                                 
  File "/usr/lib/python2.7/dist-packages/xpra/net/protocol.py", line 364, in rencode                                                                                   
    return  rencode_dumps(data), Protocol.FLAGS_RENCODE                                                                                                                
  File "rencode.pyx", line 324, in xpra.net.rencode._rencode.dumps (xpra/net/rencode/rencode.c:4023)                                                                   
  File "rencode.pyx", line 304, in xpra.net.rencode._rencode.encode (xpra/net/rencode/rencode.c:3832)                                                                  
  File "rencode.pyx", line 244, in xpra.net.rencode._rencode.encode_list (xpra/net/rencode/rencode.c:2851)                                                             
  File "rencode.pyx", line 307, in xpra.net.rencode._rencode.encode (xpra/net/rencode/rencode.c:3857)                                                                  
  File "rencode.pyx", line 256, in xpra.net.rencode._rencode.encode_dict (xpra/net/rencode/rencode.c:3126)                                                             
  File "rencode.pyx", line 310, in xpra.net.rencode._rencode.encode (xpra/net/rencode/rencode.c:3883)                                                                  
Exception: type <class 'xpra.client.gtk2.client.gtk.gdk.ScreenX11'> not handled                                                                                        
2013-10-15 13:51:08,506 GTKStatusIconTray.get_geometry() <gtk.StatusIcon object at 0x3a8b4b0 (GtkStatusIcon at 0x3abf740)>.get_geometry()=(<gtk.gdk.ScreenX11 object at 0x3a90d20 (GdkScreenX11 at 0x22db0f0)>, gtk.gdk.Rectangle(0, 0, 200, 200), <enum GTK_ORIENTATION_HORIZONTAL of type GtkOrientation>)                                  
2013-10-15 13:51:08,526 GTKStatusIconTray.get_geometry() <gtk.StatusIcon object at 0x3a8bfa0 (GtkStatusIcon at 0x3abf8a0)>.get_geometry()=(<gtk.gdk.ScreenX11 object at 0x3a90d20 (GdkScreenX11 at 0x22db0f0)>, gtk.gdk.Rectangle(0, 0, 200, 200), <enum GTK_ORIENTATION_HORIZONTAL of type GtkOrientation>)                                  
2013-10-15 13:51:08,528 GTKStatusIconTray.get_geometry() <gtk.StatusIcon object at 0x3a90320 (GtkStatusIcon at 0x3abfae0)>.get_geometry()=(<gtk.gdk.ScreenX11 object at 0x3a90d20 (GdkScreenX11 at 0x22db0f0)>, gtk.gdk.Rectangle(0, 0, 200, 200), <enum GTK_ORIENTATION_HORIZONTAL of type GtkOrientation>)                                  
2013-10-15 13:51:08,529 ClientTray(13).after_draw_update_tray(True)                                                                                                    
2013-10-15 13:51:08,529 TrayBacking does not have any pixels / format!                                                                                                 
2013-10-15 13:51:08,530 will call connection lost: error in network packet write/format: type <class 'xpra.client.gtk2.client.gtk.gdk.ScreenX11'> not handled          
2013-10-15 13:51:08,530 ClientTray(3522).after_draw_update_tray(True)                                                                                                  
2013-10-15 13:51:08,536 TrayBacking does not have any pixels / format!                                                                                                 
2013-10-15 13:51:08,537 ClientTray(8434).after_draw_update_tray(True)                                                                                                  
2013-10-15 13:51:08,537 TrayBacking does not have any pixels / format!                                                                                                 
2013-10-15 13:51:08,537 ClientTray(9082).after_draw_update_tray(True)                                                                                                  
2013-10-15 13:51:08,537 TrayBacking does not have any pixels / format!                                                                                                 
2013-10-15 13:51:08,537 _focus_change(('initial',)) wid=11, has-toplevel-focus=False, _been_mapped=True                                                                
2013-10-15 13:51:08,537 update_focus(11, False) _focused=9111                                                                                                          
2013-10-15 13:51:08,537 send_focus(11)                                                                                                                                 
2013-10-15 13:51:08,538 send_focus(0)                                                                                                                                  
2013-10-15 13:51:08,540 _process_window_resized resizing window <ClientWindow object at 0x3a88730 (xpra+client+gtk2+client_window+ClientWindow at 0x3ad0290)> (id=11) to (1585, 1109)                                                                                                                                                         
2013-10-15 13:51:08,541 _focus_change(('initial',)) wid=1113, has-toplevel-focus=False, _been_mapped=True                                                              
2013-10-15 13:51:08,541 update_focus(1113, False) _focused=None                                                                                                        
2013-10-15 13:51:08,550 send_focus(1113)                                                                                                                               
2013-10-15 13:51:08,563 send_focus(0)                                                                                                                                  
2013-10-15 13:51:08,591 _process_window_resized resizing window <ClientWindow object at 0x3a8b0f0 (xpra+client+gtk2+client_window+ClientWindow at 0x3ad04b0)> (id=1113) to (1280, 737)                                                                                                                                                        
2013-10-15 13:51:08,592 setting new cursor: left_ptr=<enum GDK_LEFT_PTR of type GdkCursorType>                                                                         
2013-10-15 13:51:08,618 _focus_change(('initial',)) wid=3832, has-toplevel-focus=False, _been_mapped=True                                                              
2013-10-15 13:51:08,619 update_focus(3832, False) _focused=None                                                                                                        
2013-10-15 13:51:08,619 send_focus(3832)                                                                                                                               
2013-10-15 13:51:08,635 send_focus(0)                                                                                                                                  
2013-10-15 13:51:08,654 _focus_change(('initial',)) wid=7469, has-toplevel-focus=False, _been_mapped=True                                                              
2013-10-15 13:51:08,654 update_focus(7469, False) _focused=None                                                                                                        
2013-10-15 13:51:08,655 send_focus(7469)                                                                                                                               
2013-10-15 13:51:08,657 send_focus(0)                                                                                                                                  
2013-10-15 13:51:08,658 _process_window_resized resizing window <ClientWindow object at 0x3a8b7d0 (xpra+client+gtk2+client_window+ClientWindow at 0x3ad05c0)> (id=3832) to (1343, 945)                                                                                                                                                        
2013-10-15 13:51:08,658 _focus_change(('initial',)) wid=9111, has-toplevel-focus=True, _been_mapped=True                                                               
2013-10-15 13:51:08,659 update_focus(9111, True) _focused=None                                                                                                         
2013-10-15 13:51:08,659 send_focus(9111)                                                                                                                               
2013-10-15 13:51:08,663 tray_resized((<gtk.StatusIcon object at 0x3a889b0 (GtkStatusIcon at 0x3afb1c0)>, 48))                                                          
2013-10-15 13:51:08,664 GTKStatusIconTray.get_geometry() <gtk.StatusIcon object at 0x3a889b0 (GtkStatusIcon at 0x3afb1c0)>.get_geometry()=(<gtk.gdk.ScreenX11 object at 0x3a90d20 (GdkScreenX11 at 0x22db0f0)>, gtk.gdk.Rectangle(0, 0, 48, 48), <enum GTK_ORIENTATION_HORIZONTAL of type GtkOrientation>)                                    
2013-10-15 13:51:08,665 tray_resized((<gtk.StatusIcon object at 0x3a8b4b0 (GtkStatusIcon at 0x3abf740)>, 48))                                                          
2013-10-15 13:51:08,666 GTKStatusIconTray.get_geometry() <gtk.StatusIcon object at 0x3a8b4b0 (GtkStatusIcon at 0x3abf740)>.get_geometry()=(<gtk.gdk.ScreenX11 object at 0x3a90d20 (GdkScreenX11 at 0x22db0f0)>, gtk.gdk.Rectangle(0, 0, 48, 48), <enum GTK_ORIENTATION_HORIZONTAL of type GtkOrientation>)                                    
2013-10-15 13:51:08,675 tray_resized((<gtk.StatusIcon object at 0x3a8bfa0 (GtkStatusIcon at 0x3abf8a0)>, 48))                                                          
2013-10-15 13:51:08,677 GTKStatusIconTray.get_geometry() <gtk.StatusIcon object at 0x3a8bfa0 (GtkStatusIcon at 0x3abf8a0)>.get_geometry()=(<gtk.gdk.ScreenX11 object at 0x3a90d20 (GdkScreenX11 at 0x22db0f0)>, gtk.gdk.Rectangle(0, 0, 48, 48), <enum GTK_ORIENTATION_HORIZONTAL of type GtkOrientation>)                                    
2013-10-15 13:51:08,705 tray_resized((<gtk.StatusIcon object at 0x3a90320 (GtkStatusIcon at 0x3abfae0)>, 48))                                                          
2013-10-15 13:51:08,707 GTKStatusIconTray.get_geometry() <gtk.StatusIcon object at 0x3a90320 (GtkStatusIcon at 0x3abfae0)>.get_geometry()=(<gtk.gdk.ScreenX11 object at 0x3a90d20 (GdkScreenX11 at 0x22db0f0)>, gtk.gdk.Rectangle(0, 0, 48, 48), <enum GTK_ORIENTATION_HORIZONTAL of type GtkOrientation>)                                    
2013-10-15 13:51:08,734 _process_window_resized resizing window <ClientWindow object at 0x3a8bbe0 (xpra+client+gtk2+client_window+ClientWindow at 0x3ad06d0)> (id=7469) to (1317, 954)                                                                                                                                                        
2013-10-15 13:51:08,735 _process_window_resized resizing window <ClientWindow object at 0x3a90640 (xpra+client+gtk2+client_window+ClientWindow at 0x3ad07e0)> (id=9111) to (1272, 941)                                                                                                                                                        
2013-10-15 13:51:08,735 connection lost: error in network packet write/format: type <class 'xpra.client.gtk2.client.gtk.gdk.ScreenX11'> not handled                    
2013-10-15 13:51:08,735 connection closed after 44 packets received (1.2M bytes) and 37 packets sent (29K bytes)                                                       
2013-10-15 13:51:08,735 read thread: empty marker, exiting                                                                                                             
2013-10-15 13:51:08,736 write thread: empty marker, exiting                                                                                                            
2013-10-15 13:51:08,741 io_thread_loop(write, <bound method Protocol._write of <xpra.net.protocol.Protocol object at 0x2485790>>) loop ended, closed=True              
2013-10-15 13:51:08,792 setting new cursor: left_ptr=<enum GDK_LEFT_PTR of type GdkCursorType>                                                                         
2013-10-15 13:51:08,793 io_thread_loop(read, <bound method Protocol._read of <xpra.net.protocol.Protocol object at 0x2485790>>) loop ended, closed=True                
2013-10-15 13:51:08,841 Connection lost                                                                                                                                
2013-10-15 13:51:08,841 GTKXpraClient.quit(1) current exit_code=None                                                                                                   
2013-10-15 13:51:08,841 UIXpraClient.cleanup()                                                                                                                         
2013-10-15 13:51:08,842 XpraClientBase.cleanup() protocol=Protocol(None)                                                                                               
2013-10-15 13:51:08,842 UIXpraClient.cleanup() calling <class 'xpra.client.gtk_base.gtk_keyboard_helper.GTKKeyboardHelper'>.cleanup() : <bound method GTKKeyboardHelper.cleanup of <xpra.client.gtk_base.gtk_keyboard_helper.GTKKeyboardHelper object at 0x37d5990>>                                                                          
2013-10-15 13:51:08,843 UIXpraClient.cleanup() calling <class 'xpra.clipboard.gdk_clipboard.GDKClipboardProtocolHelper'>.cleanup() : <bound method GDKClipboardProtocolHelper.cleanup of <xpra.clipboard.gdk_clipboard.GDKClipboardProtocolHelper object at 0x3a76790>>
2013-10-15 13:51:08,843 UIXpraClient.cleanup() calling <class 'xpra.client.gtk_base.statusicon_tray.GTKStatusIconTray'>.cleanup() : <bound method GTKStatusIconTray.cleanup of <xpra.client.gtk_base.statusicon_tray.GTKStatusIconTray object at 0x3992150>>
2013-10-15 13:51:08,844 UIXpraClient.cleanup() calling <class 'xpra.client.notifications.dbus_notifier.DBUS_Notifier'>.cleanup() : <bound method DBUS_Notifier.cleanup of <xpra.client.notifications.dbus_notifier.DBUS_Notifier object at 0x39c0110>>
2013-10-15 13:51:08,848 UIXpraClient.cleanup() calling <class 'xpra.client.gtk2.tray_menu.GTK2TrayMenu'>.cleanup() : <bound method GTK2TrayMenu.cleanup of <xpra.client.gtk2.tray_menu.GTK2TrayMenu object at 0x37e5e50>>
2013-10-15 13:51:08,848 cleanup() session_info=None
2013-10-15 13:51:08,949 XpraClient.clean_mmap() mmap_filename=None
2013-10-15 13:51:08,949 destroy_window(3522, ClientTray(3522))
2013-10-15 13:51:08,950 destroy_window(6, <ClientWindow object at 0x3a88140 (xpra+client+gtk2+client_window+ClientWindow at 0x3ad0180)>)
2013-10-15 13:51:08,950 PixmapBacking(None).close() video_decoder=None
2013-10-15 13:51:08,950 _unfocus() wid=6
2013-10-15 13:51:08,950 destroy_window(11, <ClientWindow object at 0x3a88730 (xpra+client+gtk2+client_window+ClientWindow at 0x3ad0290)>)
2013-10-15 13:51:08,951 PixmapBacking(None).close() video_decoder=None
2013-10-15 13:51:08,951 _unfocus() wid=11
2013-10-15 13:51:08,951 destroy_window(940, <ClientWindow object at 0x3a88d20 (xpra+client+gtk2+client_window+ClientWindow at 0x3ad03a0)>)
2013-10-15 13:51:08,951 PixmapBacking(None).close() video_decoder=None
2013-10-15 13:51:08,951 _unfocus() wid=940
2013-10-15 13:51:08,951 destroy_window(13, ClientTray(13))
2013-10-15 13:51:08,952 destroy_window(7469, <ClientWindow object at 0x3a8bbe0 (xpra+client+gtk2+client_window+ClientWindow at 0x3ad06d0)>)
2013-10-15 13:51:08,952 PixmapBacking(None).close() video_decoder=None
2013-10-15 13:51:08,952 _unfocus() wid=7469
2013-10-15 13:51:08,953 destroy_window(8434, ClientTray(8434))
2013-10-15 13:51:08,953 destroy_window(9111, <ClientWindow object at 0x3a90640 (xpra+client+gtk2+client_window+ClientWindow at 0x3ad07e0)>)
2013-10-15 13:51:08,955 PixmapBacking(None).close() video_decoder=None
2013-10-15 13:51:08,955 _unfocus() wid=9111
2013-10-15 13:51:08,955 update_focus(9111, False) _focused=9111
2013-10-15 13:51:08,956 send_focus(0)
2013-10-15 13:51:08,959 destroy_window(3832, <ClientWindow object at 0x3a8b7d0 (xpra+client+gtk2+client_window+ClientWindow at 0x3ad05c0)>)
2013-10-15 13:51:08,959 PixmapBacking(None).close() video_decoder=None
2013-10-15 13:51:08,959 _unfocus() wid=3832
2013-10-15 13:51:08,960 destroy_window(1113, <ClientWindow object at 0x3a8b0f0 (xpra+client+gtk2+client_window+ClientWindow at 0x3ad04b0)>)
2013-10-15 13:51:08,960 PixmapBacking(None).close() video_decoder=None
2013-10-15 13:51:08,960 _unfocus() wid=1113
2013-10-15 13:51:08,960 destroy_window(9082, ClientTray(9082))
2013-10-15 13:51:08,961 UIXpraClient.cleanup() done
2013-10-15 13:51:08,961 GTKXpraClient.quit(1) main loop at level 1, calling gtk quit via timeout
2013-10-15 13:51:09,463 GTKXpraClient.run_main_loop() main loop ended, returning exit_code=1
2013-10-15 13:51:09,463 UIXpraClient.cleanup()
2013-10-15 13:51:09,463 XpraClientBase.cleanup() protocol=None
2013-10-15 13:51:09,463 UIXpraClient.cleanup() calling <class 'xpra.client.gtk_base.gtk_keyboard_helper.GTKKeyboardHelper'>.cleanup() : <bound method GTKKeyboardHelper.cleanup of <xpra.client.gtk_base.gtk_keyboard_helper.GTKKeyboardHelper object at 0x37d5990>>
2013-10-15 13:51:09,463 UIXpraClient.cleanup() calling <class 'xpra.clipboard.gdk_clipboard.GDKClipboardProtocolHelper'>.cleanup() : <bound method GDKClipboardProtocolHelper.cleanup of <xpra.clipboard.gdk_clipboard.GDKClipboardProtocolHelper object at 0x3a76790>>
2013-10-15 13:51:09,463 UIXpraClient.cleanup() calling <class 'xpra.client.gtk_base.statusicon_tray.GTKStatusIconTray'>.cleanup() : <bound method GTKStatusIconTray.cleanup of <xpra.client.gtk_base.statusicon_tray.GTKStatusIconTray object at 0x3992150>>
2013-10-15 13:51:09,464 UIXpraClient.cleanup() calling <class 'xpra.client.notifications.dbus_notifier.DBUS_Notifier'>.cleanup() : <bound method DBUS_Notifier.cleanup of <xpra.client.notifications.dbus_notifier.DBUS_Notifier object at 0x39c0110>>
2013-10-15 13:51:09,464 UIXpraClient.cleanup() calling <class 'xpra.client.gtk2.tray_menu.GTK2TrayMenu'>.cleanup() : <bound method GTK2TrayMenu.cleanup of <xpra.client.gtk2.tray_menu.GTK2TrayMenu object at 0x37e5e50>>
2013-10-15 13:51:09,464 cleanup() session_info=None
2013-10-15 13:51:09,564 XpraClient.clean_mmap() mmap_filename=None
2013-10-15 13:51:09,564 UIXpraClient.cleanup() done

Please advise if you have any patch worth trying and I will test. Thanks.

comment:4 Changed 6 years ago by onlyjob

attaching succeeded with --no-system-tray argument...

comment:5 Changed 6 years ago by Antoine Martin

Got it (same time as comment:4):

GTKStatusIconTray.get_geometry() <gtk.StatusIcon object at 0x3a889b0 (GtkStatusIcon at 0x3afb1c0)>.get_geometry()=\
    (<gtk.gdk.ScreenX11 object at 0x3a90d20 (GdkScreenX11 at 0x22db0f0)>,
     gtk.gdk.Rectangle(0, 0, 200, 200),
     <enum GTK_ORIENTATION_HORIZONTAL of type GtkOrientation>)

You have a tray icon (something I did not think of testing..).
Somehow we end up using the raw status icon geometry structure, rather than the "rectangle" containing the dimensions.

Thing is, I have no idea how that's possible. Yet.

comment:6 Changed 6 years ago by Antoine Martin

Doh:

screen = self.tray_widget.get_screen()
if screen>=0:
    client_properties["screen"] = screen

screen is a python object, and somehow evaluates to >=0... so we put this value in the dictionary.

This is fixed for trunk in r4497.
I will backport to 0.10.x and also replace the exception with a big fat warning instead so that if there are any other mistakes like this one, they won't cause disconnections.
But trunk will keep the exception because we really need to find those rather than hoping the packets make sense.

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

comment:7 Changed 6 years ago by Antoine Martin

Resolution: fixed
Status: assignedclosed

Applied to 0.10.x in r4498, 0.10.6 tagged with it in r4501

comment:8 Changed 6 years ago by Antoine Martin

Since there was some confusion between packet encoding and picture encoding, I've added a wiki page to try to clarify things: wiki/PacketEncoding

Note: See TracTickets for help on using tickets.