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

Scaling and passing session back and forth between clients triggering a 'g_object_unref' warning #1091

Closed
totaam opened this issue Jan 13, 2016 · 9 comments

Comments

@totaam
Copy link
Collaborator

totaam commented Jan 13, 2016

Issue migrated from trac ticket # 1091

component: client | priority: trivial | resolution: wontfix

2016-01-13 22:01:28: afarr created the issue


Passing a session back and forth between osx client 0.17.0 r11687 and same build window client, with 0.17.0 r11692 fedora 23 server, I'm stumbling across the tracebacks mentioned in #976 (potentially related to #980 as well):

2016-01-13 13:47:45,465 server is not responding, drawing spinners over the windows
2016-01-13 13:48:38,654 Connection lost
/Users/Schadenfreude/Desktop/xpra-catalog/xpra-ant-17-11687/Xpra.app/Contents/Resources/lib/python/xpra/client/gl/gl_window_backing_base.py:435: Warning: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
  self.glconfig = None
2016-01-13 13:48:38,693 sound output stopping
/Users/Schadenfreude/Desktop/xpra-catalog/xpra-ant-17-11687/Xpra.app/Contents/Resources/lib/python/xpra/client/gl/gl_window_backing_base.py:434: Warning: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
  self._backing = None
/Users/Schadenfreude/Desktop/xpra-catalog/xpra-ant-17-11687/Xpra.app/Contents/Resources/lib/python/xpra/client/gtk_base/gtk_client_window_base.py:998: Warning: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
  gtk.Window.destroy(self)
/Users/Schadenfreude/Desktop/xpra-catalog/xpra-ant-17-11687/Xpra.app/Contents/Resources/lib/python/xpra/gtk_common/gtk_util.py:365: Warning: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
  gtk.main()

In this case, it coincided with a disconnection (due to another client connecting) while the latency was so bad that I was getting spinners long enough to also trigger a timeout (I suspect).

Server side I also got a 2016-01-13 13:47:43,773 unknown or invalid packet type: damage-sequence from Protocol(tcp socket: ...) message, referring to the OSX client's IP (and later another referring to the windows client's IP when the latency caused it spinners and a disconnection - though the windows client had no error messages other than the expected server ping timeout message).

@totaam
Copy link
Collaborator Author

totaam commented Jan 21, 2016

2016-01-21 04:28:48: antoine changed owner from antoine to afarr

@totaam
Copy link
Collaborator Author

totaam commented Jan 21, 2016

2016-01-21 04:28:48: antoine commented


That's a strange one, similar to what r11653 is meant to avoid.

I guess it could also happen if we were calling the cleanup code from the wrong thread, but the "Connection lost" handler runs in the UI thread.

Is this only occurring with OSX?


The unknown or invalid packet type error is a race condition which happens when we are processing packets from a client as it is being disconnected, r11702 should make this harder to hit. Doing this properly would be hard and is probably not worth the effort.

@totaam
Copy link
Collaborator Author

totaam commented Jan 26, 2016

2016-01-26 01:51:55: afarr commented


Seems to only be happening on osx.

While I have gotten the above when passing a session back and forth between clients, I've also occasionally seen the last one, specifically, even when just using control-c to close session:

/Users/Schadenfreude/Desktop/xpra-catalog/xpra-ant-17-11715/Xpra.app/Contents/Resources/lib/python/xpra/gtk_common/gtk_util.py:365: Warning: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
  gtk.main()

Will watch extra carefully with windows and whatever linux I might play with in semi-near future.

@totaam
Copy link
Collaborator Author

totaam commented Jan 29, 2016

2016-01-29 21:36:38: afarr commented


Using control-c server side while osx client is connected, the message is slightly different:

/Users/Schadenfreude/Desktop/xpra-catalog/xpra-ant-17-11761/Xpra.app/Contents/Resources/lib/python/xpra/client/gtk_base/gtk_client_window_base.py:998: Warning: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
  gtk.Window.destroy(self)
/Users/Schadenfreude/Desktop/xpra-catalog/xpra-ant-17-11761/Xpra.app/Contents/Resources/lib/python/xpra/gtk_common/gtk_util.py:365: Warning: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
  gtk.main()

@totaam
Copy link
Collaborator Author

totaam commented Mar 16, 2016

2016-03-16 06:10:25: antoine changed priority from major to trivial

@totaam
Copy link
Collaborator Author

totaam commented Mar 16, 2016

2016-03-16 06:10:25: antoine commented


Maybe r12151 will help - can't hurt?

I believe that these warnings fire because we are accessing UI objects as we shutdown. You should be able to reproduce without needing another client, just by running xpra disconnect on the server - it should have the same effect: sending a disconnect packet to the client.

I am lowering the priority because I don't think this is likely to cause problems.

@totaam
Copy link
Collaborator Author

totaam commented Aug 9, 2016

2016-08-09 16:15:40: antoine changed status from new to closed

@totaam
Copy link
Collaborator Author

totaam commented Aug 9, 2016

2016-08-09 16:15:40: antoine set resolution to wontfix

@totaam
Copy link
Collaborator Author

totaam commented Aug 9, 2016

2016-08-09 16:15:40: antoine commented


Not going to worry about this one, exit from the tray or menu instead of using control-C and things should be fine.

@totaam totaam closed this as completed Aug 9, 2016
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