Hi,
I am facing issue on Linux with NativeLibrary. When HTTPS proxy is set, I am getting errors on terminal error stream with consistency from org.eclipse.equinox.internal.security.linux.unlockSecretService(..)
and following call in this method gets stuck forever.
Pointer secretService = fLibSecret.secret_service_get_sync(SecretServiceFlags.SECRET_SERVICE_LOAD_COLLECTIONS,
Pointer.NULL, gerror);
On investigation, I found that its a race condition between finalizer and NativeLibrary.getInstance(..). On second time call to get secret-1 library, the object from weak reference is gone/GCed in NativeLibrary.libraries but the NativeLibrary object itself
is not finalized/GCed yet, so it gets ref.get()==null and goes for reloading the library which causes following errors in console. The reason is that the older library was not unloaded yet and we loaded it again.
~~~~~~~~~~~~~~~~~~~~~~~~~
(java:3835014): GLib-GObject-WARNING **: 02:47:42.753: cannot register existing type 'SecretService'
(java:3835014): GLib-GObject-WARNING **: 02:47:42.753: cannot add private field to invalid (non-instantiatable) type '<invalid>'
(java:3835014): GLib-GObject-CRITICAL **: 02:47:42.753: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
(java:3835014): GLib-GObject-CRITICAL **: 02:47:42.753: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
(java:3835014): GLib-GObject-WARNING **: 02:47:42.753: cannot register existing type 'SecretBackend'
(java:3835014): GLib-GObject-CRITICAL **: 02:47:42.753: g_type_interface_add_prerequisite: assertion 'G_TYPE_IS_INTERFACE (interface_type)' failed
(java:3835014): GLib-GObject-CRITICAL **: 02:47:42.753: g_type_interface_add_prerequisite: assertion 'G_TYPE_IS_INTERFACE (interface_type)' failed
(java:3835014): GLib-CRITICAL **: 02:47:42.753: g_once_init_leave: assertion 'result != 0' failed
(java:3835014): GLib-GObject-CRITICAL **: 02:47:42.753: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
~~~~~~~~~~~~~~~~~~~~~~
I was looking at jna project and they have moved away from using finalizers [1] and it is available is version 5.12.
Can we add latest jna version in orbit for 2022-09?
Thanks,
Umair Sair
|