Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows Client crash after locking screen #901

Closed
totaam opened this issue Jun 30, 2015 · 23 comments
Closed

Windows Client crash after locking screen #901

totaam opened this issue Jun 30, 2015 · 23 comments

Comments

@totaam
Copy link
Collaborator

totaam commented Jun 30, 2015

Issue migrated from trac ticket # 901

component: client | priority: critical | resolution: fixed

2015-06-30 00:40:13: maxmylyn created the issue


Versions:

  • Windows 8.1 trunk r9554 client [http://xpra.org/beta]
  • Fedora 21 r9656 trunk server [/wiki/Building built from source]

Server started with:

  • xpra start :13 --start-new-commands=yes --bind-tcp=0.0.0.0:2200 --start-child=xterm

Client started with:

  • Xpra_cmd.exe attach tcp:ip:2200

Server is a Fedora 21 VM

Client machine is a MacBook Pro running Windows 8.1 ('bootcamped'; not in a VM, I avoid OSX like the plague) with an Intel Iris Pro graphics chipset


Repro steps are pretty simple:

  • Connect like normal

  • Lock the screen (WinKey + L)

  • Walk away, allowing the screen to shut off

  • Come back after 10ish minutes

  • Unlocking immediately seems to avoid the issue

  • Unlock the computer

[[br]]

Result:

  • Xpra has crashed with the following output to the CMD:

2015-06-29 16:11:33,776 unexpected message: WM_NULL / 0 / 0
2015-06-29 16:11:36,073 unexpected message: 798 / 0 / 0
2015-06-29 16:11:36,589 unexpected message: 798 / 0 / 0
2015-06-29 16:11:41,448 do_paint_rgb24 error
Traceback (most recent call last):
  File "xpra\client\window_backing_base.pyc", line 276, in do_paint_rgb24
  File "xpra\client\gl\gl_window_backing_base.pyc", line 563, in _do_paint_rgb24

  File "xpra\client\gl\gl_window_backing_base.pyc", line 658, in _do_paint_rgb
  File "xpra\client\gl\gl_window_backing_base.pyc", line 475, in present_fbo
  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\OpenGL\GL\exceptional.py", line 41, in glBeg
in
WindowsError: exception: access violation writing 0x0B7A5000

Server outputs:

Disconnecting client '10.0.11.123:63039': client ping timeout (waited 60 seconds without a response)
xpra client disconnected.

And then after a minute or so:

2015-06-29 16:12:36,175 sound-source failed to encode packet: ['info', {'volume': 0, 'state': None, 'codec': '', 'codec_description': u'MPEG-1 Layer 3 (MP3)', 'pid': 10200, 'bytes': 5086536, 'pipeline': 'pulsesrc ! volume name=volume volume=1.0 ! lamemp3enc encoding-engine-quality=0 ! appsink name=sink emit-signals=true max-buffers=10 drop=true sync=false async=false qos=false', 'buffers': 48909}]
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/xpra/net/protocol.py", line 482, in encode
    main_packet, proto_flags = self._encoder(packet)
  File "/usr/lib64/python2.7/site-packages/xpra/net/packet_encoding.py", line 64, in do_bencode
    return bencode(data), FLAGS_BENCODE
  File "xpra/net/bencode/cython_bencode.pyx", line 204, in xpra.net.bencode.cython_bencode.bencode (xpra/net/bencode/cython_bencode.c:4300)
ValueError: cannot encode '['info', {'volume': 0, 'state': None, 'codec': '', 'codec_description': u'MPEG-1 Layer 3 (MP3)', 'pid': 10200, 'bytes': 5086536, 'pipeline': 'pulsesrc ! volume name=volume volume=1.0 ! lamemp3enc encoding-engine-quality=0 ! appsink name=sink emit-signals=true max-buffers=10 drop=true sync=false async=false qos=false', 'buffers': 48909}]': found None value!

Not sure if the Bencode error is relevant or not.

In addition, this crash can be induced reliably; even with the same server session. Additional info can be provided upon request. However, I will be out of office from the 1st through the 15th, but I might be able to look at some stuff from home if I get the chance. If there's anything pressing I will keep an eye on my work email periodically(and will have this laptop with me), and if it's super pressing, Alex should be able to test this as well.

@totaam
Copy link
Collaborator Author

totaam commented Jun 30, 2015

2015-06-30 00:41:59: maxmylyn uploaded file Ticket 901 Firefox after crash.png (429.7 KiB)

The Firefox window I was greeted with upon unlocking the machine.
Ticket 901 Firefox after crash.png

@totaam
Copy link
Collaborator Author

totaam commented Jun 30, 2015

2015-06-30 04:13:12: antoine edited the issue description

@totaam
Copy link
Collaborator Author

totaam commented Jun 30, 2015

2015-06-30 04:13:12: antoine commented


2015-06-29 16:12:36,175 sound-source failed to encode packet:
[[BR]]
This one has already been fixed in r9727, and backported in 9752.
This happens when we stop processing sound, as we do when the client is disconnected.

I would like to know why you end up using bencode though, rencode should come first.

[[BR]]

WindowsError: exception: access violation writing 0x0B7A5000
[[BR]]
My guess is that we aren't allowed to paint to the screen when the screensaver is active - or when the screen is turned off. That's not entirely clear from the timing of the log messages. The crash occurs exactly 5 minutes after the WM_NULL message, whatever that is. I would love to know what 798 is too.

It would be useful to know if that's a Windows 8+ "feature" or not, by testing with other versions. (also, confirming that this issue is not a regression - I every much doubt that is is, but you never know)
Also useful: does this happen with opengl turned off?

Assuming that we can detect when the screensaver is active (or when the screen is turned off), we can skip present_fbo which should avoid the crash.

@totaam
Copy link
Collaborator Author

totaam commented Aug 30, 2015

2015-08-30 11:06:10: antoine changed owner from antoine to maxmylyn

@totaam
Copy link
Collaborator Author

totaam commented Aug 30, 2015

2015-08-30 11:06:10: antoine commented


There were some fixes in the memoryview and opengl areas.
Can you still reproduce?

@totaam
Copy link
Collaborator Author

totaam commented Sep 17, 2015

2015-09-17 16:50:19: antoine commented


If you can still reproduce it, please run with -d win32 and try to spot the win32 messages that correspond to going to sleep / activating the screensaver. (and also resuming if possible, you may need to turn off opengl to make it happen without crashing)

We could just minimize all the windows when we detect the event, and restore them later. Unmapped windows don't have an opengl context.

@totaam
Copy link
Collaborator Author

totaam commented Sep 18, 2015

2015-09-18 18:55:10: maxmylyn commented


Updated server to r10666 and client to r10655:

  • Managed to reproduce once.
  • Re-attempts (several..) with -d win32 unsuccessful

Actually, this is really starting to irritate me - that I cannot reproduce it.

@totaam
Copy link
Collaborator Author

totaam commented Sep 19, 2015

2015-09-19 04:05:56: antoine commented


You should be able to lower the screen timeout so you don't have to wait 10 minutes to test.

@totaam
Copy link
Collaborator Author

totaam commented Oct 6, 2015

2015-10-06 21:32:00: maxmylyn commented


  • Managed to repro it with a trunk r10606 Win8.1 client and trunk r10712 Server

Output from client (with -d win32,auth), clipped to the last 5 minutes of session:

2015-10-06 13:25:28,871 callbacks for event WM_WININICHANGE: None
2015-10-06 13:25:28,871 WM_WININICHANGE: 20 / 582872
2015-10-06 13:26:36,526 win32 hooks: propsys=<module 'win32com.propsys.propsys'
from 'C:\Program Files (x86)\Xpra\win32com.propsys.propsys.pyd'>
2015-10-06 13:26:36,526 hooked group leader override using <module 'win32com.pro
psys.propsys' from 'C:\Program Files (x86)\Xpra\win32com.propsys.propsys.pyd'>
2015-10-06 13:26:36,526 win32 hooks: set_group(0x30350)
2015-10-06 13:26:36,526 win32 hooks: calling <built-in method SetValue of PyIPro
pertyStore object at 0x01F91B94>((IID('{9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}'),
 5), <PyPROPVARIANT object at 0x0345FC78>)
2015-10-06 13:26:49,496 callbacks for event WM_ACTIVATEAPP: [<bound method Clien
tExtras.activateapp of <xpra.platform.win32.gui.ClientExtras object at 0x04F961B
0>>, <function activate_cb at 0x0500A0F0>, <function activate_cb at 0x05049130>,
 <function activate_cb at 0x05049B70>]
2015-10-06 13:26:49,496 WM_ACTIVATEAPP: 0/0 client=gtk2.client
2015-10-06 13:26:49,496 activate_cb(0, 0)
2015-10-06 13:26:49,496 readd_window_options() using unchanged style=0x16cf0000
on window 0xfe040a
2015-10-06 13:26:49,496 activate_cb(0, 0)
2015-10-06 13:26:49,496 readd_window_options() using unchanged style=0x16cf0000
on window 0x30350
2015-10-06 13:26:49,496 activate_cb(0, 0)
2015-10-06 13:26:49,496 readd_window_options() using new style=0x16cf0000 on win
dow 0x2503f8
2015-10-06 13:26:49,496 callbacks for event WM_WTSSESSION_CHANGE: None
2015-10-06 13:26:49,496 WM_WTSSESSION_CHANGE: 7 / 1
2015-10-06 13:27:55,180 server is not responding, drawing spinners over the wind
ows
2015-10-06 13:27:55,430 server is OK again
2015-10-06 13:27:58,529 callbacks for event WM_DEVICECHANGE: None
2015-10-06 13:27:58,529 WM_DEVICECHANGE: 7 / 0
2015-10-06 13:28:21,243 callbacks for event WM_DEVICECHANGE: None
2015-10-06 13:28:21,243 WM_DEVICECHANGE: 7 / 0
2015-10-06 13:28:22,917 callbacks for event WM_WTSSESSION_CHANGE: None
2015-10-06 13:28:22,917 WM_WTSSESSION_CHANGE: 8 / 1
2015-10-06 13:28:22,947 callbacks for event WM_ACTIVATEAPP: [<bound method Clien
tExtras.activateapp of <xpra.platform.win32.gui.ClientExtras object at 0x04F961B
0>>, <function activate_cb at 0x0500A0F0>, <function activate_cb at 0x05049130>,
 <function activate_cb at 0x05049B70>]
2015-10-06 13:28:22,947 WM_ACTIVATEAPP: 1/572 client=gtk2.client
2015-10-06 13:28:22,947 activate_cb(1, 572)
2015-10-06 13:28:22,947 readd_window_options() using unchanged style=0x16cf0000
on window 0xfe040a
2015-10-06 13:28:22,947 activate_cb(1, 572)
2015-10-06 13:28:22,947 readd_window_options() using new style=0x16cf0000 on win
dow 0x30350
2015-10-06 13:28:22,947 activate_cb(1, 572)
2015-10-06 13:28:22,947 readd_window_options() using unchanged style=0x16cf0000
on window 0x2503f8
2015-10-06 13:28:24,447 callbacks for event WM_NULL: None
2015-10-06 13:28:24,447 unknown reserved system message: WM_NULL / 0 / 0
2015-10-06 13:28:26,808 callbacks for event WM_DISPLAYCHANGE: None
2015-10-06 13:28:26,808 WM_DISPLAYCHANGE: 32 / 94374400
2015-10-06 13:28:27,244 callbacks for event WM_WINDOWPOSCHANGING: None
2015-10-06 13:28:27,244 WM_WINDOWPOSCHANGING: 0 / 1635504
2015-10-06 13:28:27,244 callbacks for event WM_NCCALCSIZE: None
2015-10-06 13:28:27,244 WM_NCCALCSIZE: 1 / 1635464
2015-10-06 13:28:27,244 callbacks for event WM_WINDOWPOSCHANGED: None
2015-10-06 13:28:27,244 WM_WINDOWPOSCHANGED: 0 / 1635504
2015-10-06 13:28:27,244 callbacks for event WM_NCCALCSIZE: None
2015-10-06 13:28:27,244 WM_NCCALCSIZE: 1 / 1634328
2015-10-06 13:28:27,260 callbacks for event 0x31e: None
2015-10-06 13:28:27,260 unknown reserved system message: 0x31e / 0 / 0
2015-10-06 13:28:27,558 callbacks for event screen background changed: None
2015-10-06 13:28:27,558 screen background changed: 8422655 / 1
2015-10-06 13:28:27,588 callbacks for event WM_WINDOWPOSCHANGING: None
2015-10-06 13:28:27,588 WM_WINDOWPOSCHANGING: 0 / 1635504
2015-10-06 13:28:27,588 callbacks for event WM_NCCALCSIZE: None
2015-10-06 13:28:27,605 WM_NCCALCSIZE: 1 / 1635464
2015-10-06 13:28:27,605 callbacks for event WM_WINDOWPOSCHANGED: None
2015-10-06 13:28:27,605 WM_WINDOWPOSCHANGED: 0 / 1635504
2015-10-06 13:28:27,605 callbacks for event WM_NCCALCSIZE: None
2015-10-06 13:28:27,605 WM_NCCALCSIZE: 1 / 1634328
2015-10-06 13:28:27,605 callbacks for event 0x31e: None
2015-10-06 13:28:27,605 unknown reserved system message: 0x31e / 0 / 0
2015-10-06 13:28:27,605 callbacks for event WM_DWMNCRENDERINGCHANGED: None
2015-10-06 13:28:27,605 WM_DWMNCRENDERINGCHANGED: 1 / 0
2015-10-06 13:28:27,792 get_workareas() GetMonitorInfo(<PyHANDLE:1179711>)={'Dev
ice': '\\\\.\\DISPLAY1', 'Work': (0, 0, 2560, 1400), 'Flags': 1, 'Monitor': (0,
0, 2560, 1440)}
2015-10-06 13:28:27,792 get_workareas()=[(0, 0, 2560, 1400)]
2015-10-06 13:28:27,792 get_workarea() absolute total monitor dimensions: (2560,
 1440)
2015-10-06 13:28:28,869 callbacks for event WM_WININICHANGE: None
2015-10-06 13:28:28,869 WM_WININICHANGE: 20 / 582872
2015-10-06 13:28:38,808 callbacks for event WM_ACTIVATEAPP: [<bound method Clien
tExtras.activateapp of <xpra.platform.win32.gui.ClientExtras object at 0x04F961B
0>>, <function activate_cb at 0x0500A0F0>, <function activate_cb at 0x05049130>,
 <function activate_cb at 0x05049B70>]
2015-10-06 13:28:38,808 WM_ACTIVATEAPP: 0/2236 client=gtk2.client
2015-10-06 13:28:38,808 activate_cb(0, 2236)
2015-10-06 13:28:38,808 readd_window_options() using unchanged style=0x16cf0000
on window 0xfe040a
2015-10-06 13:28:38,808 activate_cb(0, 2236)
2015-10-06 13:28:38,808 readd_window_options() using unchanged style=0x16cf0000
on window 0x30350
2015-10-06 13:28:38,808 activate_cb(0, 2236)
2015-10-06 13:28:38,808 readd_window_options() using unchanged style=0x16cf0000
on window 0x2503f8
2015-10-06 13:28:39,058 gtk2.GLWindowBacking(2, (1176, 882), YUV444P).gl_paint_p
lanar(..) error: GLError(
        err = 1282,
        description = 'invalid operation',
        baseOperation = glEnd,
        cArguments = ()
)
Traceback (most recent call last):
  File "xpra\client\gl\gl_window_backing_base.pyc", line 726, in gl_paint_planar

  File "xpra\client\gl\gl_window_backing_base.pyc", line 802, in render_planar_u
pdate
  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\OpenGL\GL\exceptional.py", line 46, in glEnd

  File "errorchecker.pyx", line 53, in OpenGL_accelerate.errorchecker._ErrorChec
ker.glCheckError (c:\Users\mcfletch\OpenGL-dev\OpenGL-ctypes\OpenGL_accelerate\s
rc\errorchecker.c:1218)
GLError: GLError(
        err = 1282,
        description = 'invalid operation',
        baseOperation = glEnd,
        cArguments = ()
)
2015-10-06 13:28:42,855 do_paint_rgb32 error
Traceback (most recent call last):
  File "xpra\client\window_backing_base.pyc", line 308, in do_paint_rgb32
  File "xpra\client\gl\gl_window_backing_base.pyc", line 619, in _do_paint_rgb32

  File "xpra\client\gl\gl_window_backing_base.pyc", line 690, in _do_paint_rgb
  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\OpenGL\GL\exceptional.py", line 46, in glEnd

  File "errorchecker.pyx", line 50, in OpenGL_accelerate.errorchecker._ErrorChec
ker.glCheckError (c:\Users\mcfletch\OpenGL-dev\OpenGL-ctypes\OpenGL_accelerate\s
rc\errorchecker.c:1121)
WindowsError: exception: access violation writing 0x0A535000```

@totaam
Copy link
Collaborator Author

totaam commented Oct 7, 2015

2015-10-07 03:43:38: antoine changed status from new to assigned

@totaam
Copy link
Collaborator Author

totaam commented Oct 7, 2015

2015-10-07 03:43:38: antoine changed owner from maxmylyn to antoine

@totaam
Copy link
Collaborator Author

totaam commented Oct 7, 2015

2015-10-07 03:43:38: antoine commented


There are two events which we should be able to use:

  • WM_DWMNCRENDERINGCHANGED seems like the right type of message as it is related to rendering, but the DwmGetWindowAttribute call is too obscure to use.
  • WM_WTSSESSION_CHANGE: Notifies applications of changes in session state.. From your log, it seems to go into WTS_SESSION_LOCK then 3 seconds later WTS_SESSION_UNLOCK. It is less clean than the event above because we have to infer that the opengl rendering context is going to be broken by the lock + unlock. (which may not be true for all OS versions and drivers... but that's what we have available)

@totaam
Copy link
Collaborator Author

totaam commented Oct 8, 2015

2015-10-08 10:15:10: antoine changed priority from major to critical

@totaam
Copy link
Collaborator Author

totaam commented Oct 8, 2015

2015-10-08 10:15:10: antoine changed status from assigned to new

@totaam
Copy link
Collaborator Author

totaam commented Oct 8, 2015

2015-10-08 10:15:10: antoine changed owner from antoine to maxmylyn

@totaam
Copy link
Collaborator Author

totaam commented Oct 8, 2015

2015-10-08 10:15:10: antoine commented


Some preparatory / cleanup work in r10760 + a fix in r10761. (may backport those)

r10762 should fix this: we now iconify our windows when the session is locked on win32, so the windows are "umapped" and we close the OpenGL context.
You will then have to unminimize them when you unlock.

Note: assuming that this does fix things for you (I understand it may take time to confirm as it is harder to confirm a negative result... side note: I believe a fast updating window like glxgears is more likely to trigger this problem), then we can:

  • try to unminimize the windows when we get the corresponding unlock event (will have to add a new state to keep track of which windows need to be unminimized)
  • prevent new windows from popping up whilst the screen is locked, which is not implemented yet as this is harder and also less likely to occur (we could fake the configure event and send a "minimize" message immediately after, but this would not take care of various other messages which can cause the minimized window to be mapped... and therefore may be able to trigger the crash)

I am raising the priority of this ticket because I would like to get some kind of fix in 0.15

@totaam
Copy link
Collaborator Author

totaam commented Oct 8, 2015

2015-10-08 23:31:46: maxmylyn commented


Upped client to r10765 (Win8.1):

  • Repro'd ?
  • I got an error stating that the graphics driver crashed and then recovered - Xpra also crashed.
  • It looks like Xpra has contributed to the crash as the other applications that I had open have never caused an issue such as this before. (I use most of them on a daily basis)

Output from -d win32 (the tail end of it...most of the error print has overridden what was printed beforehand)

(edited - removed long winded pyopengl errorchecker messages)

2015-10-08 15:27:51,529 do_paint_rgb24 error
Traceback (most recent call last):
  File "xpra\client\window_backing_base.pyc", line 277, in do_paint_rgb24
  File "xpra\client\gl\gl_window_backing_base.pyc", line 622, in _do_paint_rgb24

  File "xpra\client\gl\gl_window_backing_base.pyc", line 690, in _do_paint_rgb
  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\OpenGL\GL\exceptional.py", line 46, in glEnd

  File "errorchecker.pyx", line 50, in OpenGL_accelerate.errorchecker._ErrorChec
ker.glCheckError (c:\Users\mcfletch\OpenGL-dev\OpenGL-ctypes\OpenGL_accelerate\s
rc\errorchecker.c:1121)
WindowsError: exception: access violation writing 0x08465000

@totaam
Copy link
Collaborator Author

totaam commented Oct 9, 2015

2015-10-09 10:57:29: antoine commented


Ah, but of course: iconifying the window is not enough, we still have a widget that references the OpenGL context and we still paint to it even, albeit at a slower rate (so that the window manager can show previews in the task bar and show the window contents as soon as we we deiconify it)

So r10778 + r10780 introduces a "freeze" call on the window class which we use to free the OpenGL context by removing the widget then re-creating one next time we need it again. This is all a bit too involved to backport to v0.15.x.

To make it easier to test this code, especially on other platforms where locking does not cause the windows to be frozen, you can still trigger it with:

--key-shortcut=Meta+Shift+F7:freeze

r10779 should make it very rare (though maybe not impossible? but no big deal) to get paint errors reported as we finish to decompress a picture after we've destroyed the window's opengl backing context: those should now get logged at debug level only.

Things I would like to do more properly (which I will need to put in a new ticket):

  • as mentioned in comment:8 there is nothing stopping applications from creating new windows (or showing / resizing existing ones) after we call freeze, which may still cause the crash...
  • maybe the "_been_mapped" flag should be reset to False when we freeze (or unmap?) a window
  • restoring the windows when the screen is unlocked

@maxmylyn: does this work for you?

@totaam
Copy link
Collaborator Author

totaam commented Oct 9, 2015

2015-10-09 22:06:56: maxmylyn changed owner from maxmylyn to antoine

@totaam
Copy link
Collaborator Author

totaam commented Oct 9, 2015

2015-10-09 22:06:56: maxmylyn commented


Updated to r10768:

Attempted several times

  • Windows now minimize after screen lock
  • After unlocking, they do not restore
  • No more client crashes, though!

-d win32 output(snipped to after SESSION_LOCK event):

(connected, locked screen, waited, then unlocked)

2015-10-09 13:36:02,359 WM_WTSSESSION_CHANGE: SESSION_LOCK on session 0x1
2015-10-09 13:36:02,359 will freeze all the windows
2015-10-09 13:36:02,375 on_getminmaxinfo(2032986, 36, 0, 1631208) max_size=None
2015-10-09 13:36:02,375 callbacks for event WM_ACTIVATEAPP: [<bound method Clien
tExtras.activateapp of <xpra.platform.win32.gui.ClientExtras object at 0x072957B
0>>]
2015-10-09 13:36:02,375 WM_ACTIVATEAPP: 1/0 client=gtk2.client
2015-10-09 13:36:02,375 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x1f055a
2015-10-09 13:36:02,375 fixup_window_style() unchanged style 0x16cf0000 on windo
w 0x2804ec
2015-10-09 13:36:02,375 fixup_window_style() unchanged style 0x16cf0000 on windo
w 0x3204f4
2015-10-09 13:36:02,375 fixup_window_style() unchanged style 0x16cf0000 on windo
w 0x2204ea
2015-10-09 13:36:02,391 on_getminmaxinfo(2622700, 36, 0, 1631208) max_size=None
2015-10-09 13:36:02,391 on_getminmaxinfo(3278068, 36, 0, 1631208) max_size=None
2015-10-09 13:36:02,407 on_getminmaxinfo(2229482, 36, 0, 1631208) max_size=None
2015-10-09 13:36:02,407 after_window_state_updated()
2015-10-09 13:36:02,407 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x1f055a
2015-10-09 13:36:02,407 after_window_state_updated()
2015-10-09 13:36:02,407 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x2804ec
2015-10-09 13:36:02,407 after_window_state_updated()
2015-10-09 13:36:02,407 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x3204f4
Traceback (most recent call last):
  File "xpra\client\gtk_base\gtk_client_window_base.pyc", line 340, in window_st
ate_updated
  File "xpra\client\gtk_base\gtk_client_window_base.pyc", line 360, in update_wi
ndow_state
AssertionError
2015-10-09 13:36:02,407 after_window_state_updated()
2015-10-09 13:36:02,407 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x2204ea
2015-10-09 13:36:03,700 sound-sink using audio codec: MPEG 1 Audio, Layer 3 (MP3
)
2015-10-09 13:37:11,611 callbacks for event WM_DEVICECHANGE: None
2015-10-09 13:37:11,611 WM_DEVICECHANGE: 7 / 0
2015-10-09 13:37:21,729 callbacks for event WM_DEVICECHANGE: None
2015-10-09 13:37:21,729 WM_DEVICECHANGE: 7 / 0
2015-10-09 13:37:24,812 callbacks for event WM_WTSSESSION_CHANGE: [<bound method
 ClientExtras.session_change_event of <xpra.platform.win32.gui.ClientExtras obje
ct at 0x072957B0>>]
2015-10-09 13:37:24,812 WM_WTSSESSION_CHANGE: SESSION_UNLOCK on session 0x1
2015-10-09 13:37:26,344 callbacks for event WM_NULL: None
2015-10-09 13:37:26,344 unknown reserved system message: WM_NULL / 0 / 0
2015-10-09 13:37:32,109 callbacks for event WM_ACTIVATEAPP: [<bound method Clien
tExtras.activateapp of <xpra.platform.win32.gui.ClientExtras object at 0x072957B
0>>]
2015-10-09 13:37:32,109 WM_ACTIVATEAPP: 0/4476 client=gtk2.client
2015-10-09 13:37:32,109 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x1f055a
2015-10-09 13:37:32,109 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x2804ec
2015-10-09 13:37:32,109 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x3204f4
2015-10-09 13:37:32,125 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x2204ea
2015-10-09 13:37:36,907 OnTaskbarNotify(2229560,1044,0,512) button(s) lookup: [(
2229560, 1044, 0, 512)], callback=<bound method Win32Tray.move_cb of <xpra.platf
orm.win32.win32_tray.Win32Tray object at 0x07287630>>
2015-10-09 13:37:36,907 move_cb(2229560, 1044, 0, 512) x=2300, y=1403, size=16
2015-10-09 13:37:39,252 OnTaskbarNotify(2229560,1044,0,512) button(s) lookup: [(
2229560, 1044, 0, 512)], callback=<bound method Win32Tray.move_cb of <xpra.platf
orm.win32.win32_tray.Win32Tray object at 0x07287630>>
2015-10-09 13:37:39,252 move_cb(2229560, 1044, 0, 512) x=2320, y=1421, size=16
2015-10-09 13:37:39,252 OnTaskbarNotify(2229560,1044,0,512) button(s) lookup: [(
2229560, 1044, 0, 512)], callback=<bound method Win32Tray.move_cb of <xpra.platf
orm.win32.win32_tray.Win32Tray object at 0x07287630>>
2015-10-09 13:37:39,252 move_cb(2229560, 1044, 0, 512) x=2320, y=1421, size=16
2015-10-09 13:37:39,266 OnTaskbarNotify(2229560,1044,0,512) button(s) lookup: [(
2229560, 1044, 0, 512)], callback=<bound method Win32Tray.move_cb of <xpra.platf
orm.win32.win32_tray.Win32Tray object at 0x07287630>>
2015-10-09 13:37:39,266 move_cb(2229560, 1044, 0, 512) x=2318, y=1421, size=16
2015-10-09 13:37:39,361 OnTaskbarNotify(2229560,1044,0,512) button(s) lookup: [(
2229560, 1044, 0, 512)], callback=<bound method Win32Tray.move_cb of <xpra.platf
orm.win32.win32_tray.Win32Tray object at 0x07287630>>
2015-10-09 13:37:39,361 move_cb(2229560, 1044, 0, 512) x=2318, y=1421, size=16
2015-10-09 13:37:39,438 OnTaskbarNotify(2229560,1044,0,512) button(s) lookup: [(
2229560, 1044, 0, 512)], callback=<bound method Win32Tray.move_cb of <xpra.platf
orm.win32.win32_tray.Win32Tray object at 0x07287630>>
2015-10-09 13:37:39,438 move_cb(2229560, 1044, 0, 512) x=2316, y=1423, size=16
2015-10-09 13:37:39,516 OnTaskbarNotify(2229560,1044,0,516) button(s) lookup: [(
3, 1)], callback=<function xpra_tray_click at 0x0712A970>
2015-10-09 13:37:39,627 OnTaskbarNotify(2229560,1044,0,517) button(s) lookup: [(
3, 0)], callback=<function xpra_tray_click at 0x0712A970>
2015-10-09 13:37:39,641 OnTaskbarNotify(2229560,1044,0,512) button(s) lookup: [(
2229560, 1044, 0, 512)], callback=<bound method Win32Tray.move_cb of <xpra.platf
orm.win32.win32_tray.Win32Tray object at 0x07287630>>
2015-10-09 13:37:39,641 move_cb(2229560, 1044, 0, 512) x=2316, y=1423, size=16
2015-10-09 13:37:39,641 OnTaskbarNotify(2229560,1044,0,512) button(s) lookup: [(
2229560, 1044, 0, 512)], callback=<bound method Win32Tray.move_cb of <xpra.platf
orm.win32.win32_tray.Win32Tray object at 0x07287630>>
2015-10-09 13:37:39,641 move_cb(2229560, 1044, 0, 512) x=2316, y=1423, size=16
2015-10-09 13:37:39,641 OnTaskbarNotify(2229560,1044,0,512) button(s) lookup: [(
2229560, 1044, 0, 512)], callback=<bound method Win32Tray.move_cb of <xpra.platf
orm.win32.win32_tray.Win32Tray object at 0x07287630>>
2015-10-09 13:37:39,641 move_cb(2229560, 1044, 0, 512) x=2316, y=1423, size=16
2015-10-09 13:37:40,345 callbacks for event WM_ACTIVATEAPP: [<bound method Clien
tExtras.activateapp of <xpra.platform.win32.gui.ClientExtras object at 0x072957B
0>>]
2015-10-09 13:37:40,345 WM_ACTIVATEAPP: 1/2540 client=gtk2.client
2015-10-09 13:37:40,345 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x1f055a
2015-10-09 13:37:40,345 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x2804ec
2015-10-09 13:37:40,345 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x3204f4
2015-10-09 13:37:40,345 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x2204ea
2015-10-09 13:37:40,345 callbacks for event WM_ACTIVATEAPP: [<bound method Clien
tExtras.activateapp of <xpra.platform.win32.gui.ClientExtras object at 0x072957B
0>>]
2015-10-09 13:37:40,345 WM_ACTIVATEAPP: 0/2540 client=gtk2.client
2015-10-09 13:37:40,345 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x1f055a
2015-10-09 13:37:40,345 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x2804ec
2015-10-09 13:37:40,345 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x3204f4
2015-10-09 13:37:40,345 fixup_window_style() unchanged style 0x36cf0000 on windo
w 0x2204ea
2015-10-09 13:37:40,345 Win32Tray.cleanup() tray_widget=<xpra.platform.win32.win
32_NotifyIcon.win32NotifyIcon object at 0x07287650>
2015-10-09 13:37:40,345 win32NotifyIcon.close()
2015-10-09 13:37:40,345 OnDestroy(2229560,None,None,None) exit_callback=None
2015-10-09 13:37:40,345 OnDestroy(..) calling Shell_NotifyIcon(NIM_DELETE, (2229
560, 0))
2015-10-09 13:37:40,361 OnDestroy(..) calling exit_callback=None
2015-10-09 13:37:40,361 Win32Tray.cleanup() ended
2015-10-09 13:37:40,361 ClientExtras.cleanup()
2015-10-09 13:37:40,361 calling win32api.SetConsoleCtrlHandler(None, False)
2015-10-09 13:37:40,361 Win32EventListener.cleanup()
2015-10-09 13:37:40,361 stop_win32_session_events() old win32 proc=514150400
2015-10-09 13:37:40,361 ClientExtras.cleanup() ended
2015-10-09 13:37:40,361 remove_window_hooks(GLClientWindow(1 : None)) found <xpr
a.platform.win32.window_hooks.Win32Hooks object at 0x072D06B0>
2015-10-09 13:37:40,361 cleanup()
2015-10-09 13:37:40,361 remove_window_hooks(GLClientWindow(2 : None)) found <xpr
a.platform.win32.window_hooks.Win32Hooks object at 0x072D0810>
2015-10-09 13:37:40,361 cleanup()
2015-10-09 13:37:40,377 remove_window_hooks(GLClientWindow(21 : None)) found <xp
ra.platform.win32.window_hooks.Win32Hooks object at 0x072D0B10>
2015-10-09 13:37:40,377 cleanup()
2015-10-09 13:37:40,377 remove_window_hooks(GLClientWindow(14 : None)) found <xp
ra.platform.win32.window_hooks.Win32Hooks object at 0x072D08B0>
2015-10-09 13:37:40,377 cleanup()
2015-10-09 13:37:40,377 remove_window_hooks(GLClientWindow(17 : None)) found <xp
ra.platform.win32.window_hooks.Win32Hooks object at 0x072D09F0>
2015-10-09 13:37:40,377 cleanup()
2015-10-09 13:37:40,891 Win32Tray.cleanup() tray_widget=None
2015-10-09 13:37:40,891 Win32Tray.cleanup() ended
2015-10-09 13:37:40,891 ClientExtras.cleanup()
2015-10-09 13:37:40,891 Win32EventListener.cleanup()
2015-10-09 13:37:40,891 stop_win32_session_events() old win32 proc=None
2015-10-09 13:37:40,891 ClientExtras.cleanup() ended

@totaam
Copy link
Collaborator Author

totaam commented Oct 10, 2015

2015-10-10 06:32:02: antoine changed status from new to closed

@totaam
Copy link
Collaborator Author

totaam commented Oct 10, 2015

2015-10-10 06:32:02: antoine set resolution to fixed

@totaam
Copy link
Collaborator Author

totaam commented Oct 10, 2015

2015-10-10 06:32:02: antoine commented


I have moved the unresolved issues to #997. (restore windows, block new windows)

Found one remaining issue AssertionError thanks to your client log output, it should be fixed by r10786. This could have caused this minimize code to fail for some windows in some cases! ..and the crash to re-appear.

Closing at last!

(I am not backporting these changes for now: just too many changes, too intrusive, let's focus on 0.16)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant