Xpra: Ticket #1364: Windows client painting random window as solid white upon connection

So, I'm running the latest r14448 1.0 client against the latest 1.0 server - upon connecting, one of my windows shows up solid white. Using the system tray to specify a refresh causes the issue to clear up. The first two connects is was an Xterm, the third try it was Firefox. This machine runs without OpenGL by default, but forcing it on, I get the same issue, but the window is instead solid black.

I'm attaching a -d all log, since I'm not sure what I'm looking for. -d opengl,paint didn't show any obvious errors. I'll attach that, too anyways in hopes that it has less junk and still has the issue.



Fri, 18 Nov 2016 21:19:34 GMT - J. Max Mena: attachment set

Connecting with OpenGL on - Window #4 (Firefox) shows up as solid black.


Fri, 18 Nov 2016 21:20:07 GMT - J. Max Mena: attachment set

Same steps, with -d all


Fri, 18 Nov 2016 21:21:05 GMT - J. Max Mena: attachment set

Same steps, opengl off - solid white on Firefox


Fri, 18 Nov 2016 21:22:55 GMT - J. Max Mena: attachment set

Xpra info with OpenGL on - Firefox still solid black. Firefox is Window 4.


Fri, 18 Nov 2016 21:45:46 GMT - J. Max Mena:

Resizing Firefox causes it to black out, with the following error repeated over and over again:

2016-11-18 13:45:18,326 Warning: failed to clear FBO
2016-11-18 13:45:18,332  GLError( err=1286, baseOperation = glClear )

And a traceback after trying to refresh:

Traceback (most recent call last):
  File "xpra\client\gl\gl_window_backing_base.pyc", line 886, in gl_paint_planar
  File "xpra\client\gl\gl_window_backing_base.pyc", line 966, in render_planar_update
  File "latebind.pyx", line 44, in OpenGL_accelerate.latebind.Curry.__call__ (c:\Users\mcfletch\OpenGL-dev\OpenGL-ctypes
\OpenGL_accelerate\src\latebind.c:1201)
  File "C:\Program Files (x86)\Xpra\library.zip\OpenGL\GL\exceptional.py", line 46, in glEnd
  File "errorchecker.pyx", line 53, in OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError (c:\Users\mcfletch\Open
GL-dev\OpenGL-ctypes\OpenGL_accelerate\src\errorchecker.c:1218)
GLError: GLError(
        err = 1286,
        baseOperation = glEnd,
        cArguments = ()
)

Sat, 19 Nov 2016 12:48:44 GMT - Antoine Martin: owner changed

The default background colour is black for opengl and white for the non opengl case.

This is an opengl chipset:

vendor: Intel
renderer: Intel(R) Iris(TM) Graphics 5100
shading-language-version: 4.20 - Build 10.18.10.3345

Which is greylisted for a good reason: wiki/ClientRendering/OpenGL.

The glclear error belongs here: #1358.


As for the actual lack of paint bug: there are no paint events in the client log. (BTW, it would be a lot easier to parse with just one window in there..) r14459 adds better debug logging to the client code. I believe I have seen it before, but I have not been able to reproduce it. Do you have steps? Is it reliable?

In the log, we already see that the window gets created, mapped and later configured. Both map and configure events should have caused the server to send the window contents. So I took a look at the sharing code added for #41 and I believe r14460 should make this safer, though I can't really explain how this could have been broken.. If you can still reproduce it, please grab:

xpra info | egrep "ui-driver"

There should always be a "ui-driver" and it should be the last client that interacted with the window (click or keyboard). In the case where a single client is connected, ui-driver should remain True for the duration of the session.


Mon, 21 Nov 2016 19:46:31 GMT - J. Max Mena:

As for the Greylisted iGPU:

Yeah, I'm aware that it's greylisted - although I've been lucky so far and it hasn't caused any serious errors so far...at least until Friday..anyways:

Upped client and server to r14467:

That seems to have made my issue go away - I've started my server up the same xpra start :13 --start-new-commands --no-daemon --bind-tcp=0.0.0.0:2200 --start-child=xterm, and it's behaving nicely now.


Do you have steps? Is it reliable?


My steps were I had a session going on my Fedora machine, and I moved it to my Windows machine, and upon connecting it just stopped painting the one window. I dunno, it was super easy to run into, but it looks fixed now.


I'll hold on to this ticket for a day or two and see if I can get it again with the improved logging. If not, then I'll close it as it looks fixed.


Tue, 22 Nov 2016 17:29:18 GMT - J. Max Mena: status changed; resolution set

Okay, I've played around with this quite a bit and cannot reproduce it anymore. Closing.


Sat, 23 Jan 2021 05:22:14 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1364