-
Notifications
You must be signed in to change notification settings - Fork 21
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
infinoted will hang after config reload because the types cannot be registered after plugin reload #31
Comments
I guess we'd either need to not reload that plugin (but why do others work?) or implement the dynamic TypePlugin system with a refcount? It turns out that there's already the following TODO in the code:
I think this would also require to deinitialize libinftext properly? I wonder why it is reinitialized at all. Backtrace with
|
Ok, my suspicion that this is because the static variable that keeps track of the type's initialization gets thrown out makes sense:
And the "once" variable is part of the library. There's no other reference on libinftext so that library gets unloaded as well and thus it will try to reinit itself when reloaded, which glib bails out on. |
(Thus an easy but unclean solution would be to force linkage from infinoted to libinftext.) |
When infinoted receives a SIGHUP it will reload its configuration. This involves unloading and subsequently reloading all plugins. Unfortunately if note-text had been in use before and you reload the plugin, it will attempt to re-register the type the next time someone opens a document:
This hangs the I/O loop completely and no client can connect anymore and SIGTERM does not work anymore either.
The text was updated successfully, but these errors were encountered: