xpra icon
Bug tracker and wiki

Opened 5 months ago

Closed 5 months ago

Last modified 5 months ago

#1605 closed defect (fixed)

UnboundLocalError xdpi exception since upgrade to 2.1

Reported by: Thomas Martitz Owned by: Thomas Martitz
Priority: major Milestone: 2.2
Component: client Version: 2.1.x
Keywords: Cc:

Description (last modified by Antoine Martin)

Hello,

xpra was upgraded to 2.1 recently, and now I'm getting the following python exception when running 'xpra attach --dpi 96'

It doesn't happen without --dpi 96, but I need this parameter since otherwise the font in the xpra windows is *tiny*.

$ xpra attach --dpi=96 :10
2017-07-28 18:08:07,338 Xpra gtk2 client version 2.1-r16525 64-bit
2017-07-28 18:08:07,338  running on Linux neon 16.04 xenial
2017-07-28 18:08:07,953 GStreamer version 1.8.3 for Python 2.7.12 64-bit
/usr/lib/python2.7/dist-packages/xpra/client/gl/gl_check.py:552: GtkWarning: Unable to locate theme engine in module_path: "adwaita",
  w = gtk.Window()
Gtk-Message: (for origin information, set GTK_DEBUG): failed to retrieve property `gtk-primary-button-warps-slider' of type `gboolean' from rc file value "((GString*) 0x4df23a0)" of type `gboolean'
2017-07-28 18:08:08,232 PyOpenGL warning: missing accelerate module
2017-07-28 18:08:08,232 PyOpenGL warning: missing array format handlers: numeric, vbo, vbooffset
2017-07-28 18:08:08,233 OpenGL Version: 3.0 Mesa 17.0.7
2017-07-28 18:08:08,233 OpenGL support is missing:
2017-07-28 18:08:08,233  PyOpenGL version 3.0.2 is too old and buggy
2017-07-28 18:08:08,247  keyboard settings: rules=evdev, model=pc101, layout=de
2017-07-28 18:08:08,248  desktop size is 4920x1920 with 1 screen:
2017-07-28 18:08:08,248   :0.0 (1299x507 mm - DPI: 96x96)
2017-07-28 18:08:08,248     monitor 1 1920x1200 at 0x360 (520x320 mm - DPI: 93x95)
2017-07-28 18:08:08,248     monitor 2 1920x1200 at 1920x360 (520x320 mm - DPI: 93x95)
2017-07-28 18:08:08,248     monitor 3 1080x1920 at 3840x0 (510x290 mm - DPI: 53x168)
2017-07-28 18:08:08,248  upscaled by 125%, virtual screen size: 3936x1536
2017-07-28 18:08:08,249   :0.0 (1299x507 mm - DPI: 76x76)
2017-07-28 18:08:08,249     monitor 1 1536x960 at 0x288 (520x320 mm - DPI: 75x76)
2017-07-28 18:08:08,249     monitor 2 1536x960 at 1536x288 (520x320 mm - DPI: 75x76)
2017-07-28 18:08:08,249     monitor 3 864x1536 at 3072x0 (510x290 mm - DPI: 43x134)
2017-07-28 18:08:08,249 error preparing connection: local variable 'xdpi' referenced before assignment
Traceback (most recent call last):                                                                                                   
  File "/usr/lib/python2.7/dist-packages/xpra/client/client_base.py", line 317, in send_hello                                        
    hello.update(self.make_hello())                                                                                                  
  File "/usr/lib/python2.7/dist-packages/xpra/client/gtk2/client.py", line 287, in make_hello                                        
    capabilities = GTKXpraClient.make_hello(self)                                                                                    
  File "/usr/lib/python2.7/dist-packages/xpra/client/gtk_base/gtk_client_base.py", line 418, in make_hello                           
    capabilities = UIXpraClient.make_hello(self)                                                                                     
  File "/usr/lib/python2.7/dist-packages/xpra/client/ui_client_base.py", line 1424, in make_hello                                    
    self._last_screen_settings = (root_w, root_h, sss, ndesktops, desktop_names, u_root_w, u_root_h, xdpi, ydpi)                     
UnboundLocalError: local variable 'xdpi' referenced before assignment                                                                
2017-07-28 18:08:08,534 Connection lost

I modified the file for a workaround that works for now. I changed the offending line to:

self._last_screen_settings = (root_w, root_h, sss, ndesktops, desktop_names, u_root_w, u_root_h, dpi, dpi)

since only dpi is calculated in the surrounding code.

Change History (4)

comment:1 Changed 5 months ago by Antoine Martin

Component: androidclient
Description: modified (diff)
Owner: changed from Antoine Martin to Thomas Martitz

Sorry about that, and thanks for reporting the bug.

The correct fix is in r16546.
Backport to older branches in r16547.

Just out of curiosity, why do you use the dpi switch?
Maybe your server is also running Ubuntu and you lack wiki/Xdummy support?

comment:2 Changed 5 months ago by Thomas Martitz

As I said, the font of the xpra windows is otherwise tiny, so that it's unreadable.

The client and server are on the same system which is KDE neon (based on Ubuntu 16.04 LTS). I have installed the latest HWE stacks including newer X.org, though. I start some windows inside xpra so that I can access them when I'm working from home.

I start the server is a systemd user instance like this:

/usr/bin/python /usr/bin/xpra start -d sound --opengl=yes --sharing=yes --pulseaudio=no --daemon=no :10

The X server is then started like this:

Xvfb-for-Xpra-:10 +extension Composite -screen 0 5760x2560x24+32 -dpi 96 -nolisten tcp -noreset -auth /home/tmartitz/.Xauthority :10

Note that both /etc/xpra.conf and $HOME/.xpra/xpra.conf are empty (contain only comments).

Do you need more information?

Last edited 5 months ago by Antoine Martin (previous) (diff)

comment:3 Changed 5 months ago by Antoine Martin

Resolution: fixed
Status: newclosed
I have installed the latest HWE stacks including newer X.org, though

Then you're using Xorg without the Xdummy patches, hence the DPI issues.

I start the server is a systemd user instance like this:
(..)
-d sound

That's going to make the logs very verbose... and also slow things down.

--opengl=yes

This doesn't do anything server-side.

Do you need more information?

No, I think it's all covered. If you want better DPI handling, install the patched xdummy, otherwise just keep hard-coding it.

Thanks for the report!

comment:4 Changed 5 months ago by Antoine Martin

Summary: Python exception since upgrade to 2.1UnboundLocalError xdpi exception since upgrade to 2.1

(better ticket title)

Note: See TracTickets for help on using tickets.