You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
From Java 13 onwards, the Process Launcher has been changed to use posix_spawn internally, instead of vfork.
However, this causes issues when trying to run the Linux version of Constellation.
This error appears on startup:
SEVERE [org.netbeans.core.network.proxy.gnome.GnomeNetworkProxy]: Cannot execute command: /usr/bin/gsettings list-recursively org.gnome.system.proxy
java.io.IOException: error=0, Failed to exec spawn helper: pid: 5416, exit value: 127
at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
at java.base/java.lang.ProcessImpl.<init>(Unknown Source)
at java.base/java.lang.ProcessImpl.start(Unknown Source)
Caused: java.io.IOException: Cannot run program "/usr/bin/gsettings": error=0, Failed to exec spawn helper: pid: 5416, exit value: 127
at java.base/java.lang.ProcessBuilder.start(Unknown Source)
at java.base/java.lang.ProcessBuilder.start(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
at java.base/java.lang.Runtime.exec(Unknown Source)
[catch] at org.netbeans.core.network.proxy.gnome.GnomeNetworkProxy.executeCommand(GnomeNetworkProxy.java:59)
at org.netbeans.core.network.proxy.gnome.GsettingsNetworkProxy.isGsettingsValid(GsettingsNetworkProxy.java:139)
at org.netbeans.core.network.proxy.gnome.GnomeNetworkProxy.getNetworkProxySettings(GnomeNetworkProxy.java:40)
at org.netbeans.core.network.proxy.NetworkProxyReloader.reloadNetworkProxy(NetworkProxyReloader.java:68)
at org.netbeans.core.network.proxy.NbProxySelector.lambda$new$0(NbProxySelector.java:58)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1420)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:287)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2035)
SEVERE [org.openide.util.RequestProcessor]: Error in RequestProcessor org.netbeans.core.network.proxy.NbProxySelector$$Lambda/0x00007ff0fc31a220
java.lang.NullPointerException: Cannot invoke "java.io.BufferedReader.ready()" because "reader" is null
at org.netbeans.core.network.proxy.gnome.GsettingsNetworkProxy.isGsettingsValid(GsettingsNetworkProxy.java:140)
at org.netbeans.core.network.proxy.gnome.GnomeNetworkProxy.getNetworkProxySettings(GnomeNetworkProxy.java:40)
at org.netbeans.core.network.proxy.NetworkProxyReloader.reloadNetworkProxy(NetworkProxyReloader.java:68)
at org.netbeans.core.network.proxy.NbProxySelector.lambda$new$0(NbProxySelector.java:58)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1420)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:287)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2035)
And this error appears when trying to open a new graph:
SEVERE [global]
java.lang.UnsatisfiedLinkError: Can't load library: /home/constellation/V3/dist/constellation/natives/linux-amd64/libgluegen_rt.so
at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.base/java.lang.Runtime.load0(Unknown Source)
at java.base/java.lang.System.load(Unknown Source)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:625)
at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:64)
at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:107)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:488)
at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:427)
at com.jogamp.common.os.Platform$1.run(Platform.java:321)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at com.jogamp.common.os.Platform.<clinit>(Platform.java:290)
at au.gov.asd.tac.constellation.help.utilities.toc.TOCGenerator.convertXMLMappings(TOCGenerator.java:104)
at au.gov.asd.tac.constellation.help.utilities.toc.TOCGenerator.convertXMLMappings(TOCGenerator.java:95)
at au.gov.asd.tac.constellation.help.utilities.Generator.run(Generator.java:71)
at org.netbeans.core.windows.WindowManagerImpl$Exclusive$1.run(WindowManagerImpl.java:1611)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:287)
at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.lambda$doEventRequest$1(NbMutexEventProvider.java:112)
at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
[catch] at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Warning: Caught Exception while retrieving executable temp base directory:
java.io.IOException: Could not determine a temporary executable directory
at com.jogamp.common.util.IOUtil.getTempDir(IOUtil.java:1336)
at com.jogamp.common.util.cache.TempFileCache.<clinit>(TempFileCache.java:84)
at com.jogamp.common.util.cache.TempJarCache.initSingleton(TempJarCache.java:96)
at com.jogamp.common.os.Platform$1.run(Platform.java:313)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at com.jogamp.common.os.Platform.<clinit>(Platform.java:290)
at au.gov.asd.tac.constellation.help.utilities.toc.TOCGenerator.convertXMLMappings(TOCGenerator.java:104)
at au.gov.asd.tac.constellation.help.utilities.toc.TOCGenerator.convertXMLMappings(TOCGenerator.java:95)
at au.gov.asd.tac.constellation.help.utilities.Generator.run(Generator.java:71)
at org.netbeans.core.windows.WindowManagerImpl$Exclusive$1.run(WindowManagerImpl.java:1611)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:287)
at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.lambda$doEventRequest$1(NbMutexEventProvider.java:112)
at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
INFO [null]: Last record repeated again.
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
As a workaround we are using a JVM option to use the old Process Launcher mechanism (vfork):
-J-Djdk.lang.Process.launchMechanism=vfork
We need to investigate what changes are needed to the Constellation code and configuration for it to be able to run correctly with the posix_spawn implementation of the Process Launcher.
Expected behaviour:
Constellation should run correctly with the latest Java Process Launcher implementation.
Actual behaviour:
Constellation does not run correctly with the latest Java Process Launcher implementation.
It needs to revert to the old vfork implementation to be fully functional.
Reproduces how often:
100%
Additional Information
The change to using posix_spawn aims to improves memory efficiency and reduce the risk of out-of-memory errors when forking processes from a Java process with a large heap.
Ideally it will enhance performance and memory management during process creation.
The text was updated successfully, but these errors were encountered:
Prerequisites
Put an X between the brackets on this line if you have done all of
the following:
Running the latest version of Constellation
Attached the Support Package via
Help
>Support Package
Checked the FAQs:
https://github.com/constellation-app/constellation/wiki/FAQ
Checked that your issue isn’t already filed:
https://github.com/constellation-app/constellation/issues
Checked that there is not already a module that provides the
described functionality:
https://github.com/constellation-app/constellation/wiki/Catalogue-of-Repositories
Description
From Java 13 onwards, the Process Launcher has been changed to use posix_spawn internally, instead of vfork.
However, this causes issues when trying to run the Linux version of Constellation.
This error appears on startup:
And this error appears when trying to open a new graph:
As a workaround we are using a JVM option to use the old Process Launcher mechanism (vfork):
We need to investigate what changes are needed to the Constellation code and configuration for it to be able to run correctly with the posix_spawn implementation of the Process Launcher.
Expected behaviour:
Constellation should run correctly with the latest Java Process Launcher implementation.
Actual behaviour:
Constellation does not run correctly with the latest Java Process Launcher implementation.
It needs to revert to the old vfork implementation to be fully functional.
Reproduces how often:
100%
Additional Information
The change to using posix_spawn aims to improves memory efficiency and reduce the risk of out-of-memory errors when forking processes from a Java process with a large heap.
Ideally it will enhance performance and memory management during process creation.
The text was updated successfully, but these errors were encountered: