[frs-5] Why can’t the native library ‘libFusionReactor.so’ be loaded?

If you run ColdFusion MX 7 Multiserver on Linux/Solaris and have used InstanceManager to install a second instance of FusionReactor on another ColdFusion MX server instance named 'cfusion2'. The InstanceManager told you to restart the server so you've restarted my 'cfusion2' instance with the following commands:

sudo -u nobody /opt/jrun4/bin/jrun stop 'cfusion2'
sudo -u nobody /opt/jrun4/bin/jrun start 'cfusion2' &

When the server is restarting you see the following in the server log file:

...
.06/21 16:57:55 info Deploying web application "cfusion" from:
file:/opt/jrun4/servers/cfusion2/cfusion.ear/
........06/21 16:58:00 INFO License Service: Flex 1.5 CF Edition enabled
06/21 16:58:00 INFO Starting Flex 1.5 CF Edition
..java.lang.UnsatisfiedLinkError: Native Library
/opt/jrun4/jre/bin/libFusionReactor.so already loaded in another classloader
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at com.intergral.fusionreactor.trace.NativeManager.B(Unknown Source)
        at com.intergral.fusionreactor.trace.NativeManager
           .initializeNativeLibrary(Unknown Source)
        at com.intergral.fusionreactor.L.X.Z(Unknown Source)
        at com.intergral.fusionreactor.L.X.A(Unknown Source)
        at com.intergral.fusionreactor.filter.FusionReactorFilter
           .init(Unknown Source)
        at jrun.servlet.FilterObject.init(FilterObject.java:63)
        at jrun.servlet.FilterManager.loadFilter(FilterManager.java:195)
        at jrun.servlet.FilterManager.init(FilterManager.java:155)
        at jrun.servlet.FilterManager.create(FilterManager.java:74)
        at jrun.servlet.WebApplicationService
           .start(WebApplicationService.java:223)
        at jrun.ea.EnterpriseApplication.start(EnterpriseApplication.java:194)
        at jrun.deployment.DeployerService.initModules(DeployerService.java:710)
        at jrun.deployment.DeployerService
           .createWatchedDeployment(DeployerService.java:242)
        at jrun.deployment.DeployerService.deploy(DeployerService.java:430)
        at jrun.deployment.DeployerService
           .checkWatchedDirectories(DeployerService.java:179)
        at jrun.deployment.DeployerService.run(DeployerService.java:891)
        at jrunx.scheduler.SchedulerService
           .invokeRunnable(SchedulerService.java:223)
        at jrunx.scheduler.ThreadPool$ThreadThrottle
           .invokeRunnable(ThreadPool.java:426)
        at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

WARNING - Unable to load FusionReactor's native library 'libFusionReactor.so'.
          The file is located on the path at the following location but
          could not be loaded:
            /opt/jrun4/jre/bin/libFusionReactor.so
          Please verify that the file is readable by the current user
          and that the file has not been corrupted in any way.
java.lang.UnsatisfiedLinkError: Native Library
   /opt/jrun4/jre/bin/libFusionReactor.so already loaded in another classloader
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source).
        at com.intergral.fusionreactor.trace.NativeManager.B(Unknown Source)
        at com.intergral.fusionreactor.trace.NativeManager
           .initializeNativeLibrary(Unknown Source)
        at com.intergral.fusionreactor.L.X.Z(Unknown Source)
        at com.intergral.fusionreactor.L.X.Y(Unknown Source)
        at com.intergral.fusionreactor.L.X.N(Unknown Source)
        at com.intergral.fusionreactor.L.X.A(Unknown Source)
        at com.intergral.fusionreactor.filter.FusionReactorFilter
           .init(Unknown Source)
        at jrun.servlet.FilterObject.init(FilterObject.java:63)
        at jrun.servlet.FilterManager.loadFilter(FilterManager.java:195)
        at jrun.servlet.FilterManager.init(FilterManager.java:155)
        at jrun.servlet.FilterManager.create(FilterManager.java:74)
        at jrun.servlet.WebApplicationService
           .start(WebApplicationService.java:223)
        at jrun.ea.EnterpriseApplication.start(EnterpriseApplication.java:194)
        at jrun.deployment.DeployerService.initModules(DeployerService.java:710)
        at jrun.deployment.DeployerService
           .createWatchedDeployment(DeployerService.java:242)
        at jrun.deployment.DeployerService.deploy(DeployerService.java:430)
        at jrun.deployment.DeployerService
           .checkWatchedDirectories(DeployerService.java:179)
        at jrun.deployment.DeployerService.run(DeployerService.java:891)
        at jrunx.scheduler.SchedulerService
           .invokeRunnable(SchedulerService.java:223)
        at jrunx.scheduler.ThreadPool$ThreadThrottle
           .invokeRunnable(ThreadPool.java:426)
        at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

WARNING - Unable to load FusionReactor's native library 'libFusionReactor.so'.
          The file is located on the path at the following location but
          could not be loaded:
            /opt/jrun4/jre/bin/libFusionReactor.so
          Please verify that the file is readable by the current user
          and that the file has not been corrupted in any way.
..06/21 16:58:03 info Web Services in cfusion.ear#cfusion.war:
06/21 16:58:03 info (No web services found.)
06/21 16:58:03 user JSPServlet: init
...

The native library has been already loaded in another classloader.

Restart the complete server after having added a FusionReactor instance:

sudo -u nobody /opt/jrun4/bin/jrun stop
sudo -u nobody /opt/jrun4/bin/jrun stop

Note: We might revise the destination of the native library for JRun based servers in the near future.

Issue Details

Type: Technote
Issue Number: FRS-5
Components: Installer
Environment:
Resolution: Fixed
Last Updated: 20/Jun/07 4:42 PM
Affects Version: 2.0
Fixed Version: 2.0
Server:
Platform: Linux, Solaris
Related Issues:

Comments are closed.