• UnsatisfiedLinkError using sigar / Openoffice / Libreoffice

  • OpenKM has many interesting features, but requires some configuration process to show its full potential.
OpenKM has many interesting features, but requires some configuration process to show its full potential.
Forum rules: Please, before asking something see the documentation wiki or use the search feature of the forum. And remember we don't have a crystal ball or mental readers, so if you post about an issue tell us which OpenKM are you using and also the browser and operating system version. For more info read How to Report Bugs Effectively.
 #29185  by Catscratch
 
Hi,

I'm using OKM 6.3.0 Community and integrated it into a Tomcat 8.0.9. Everything is working, except the Openoffice integration.
- Debian 64 Jessi

When trying to connect to openoffice (or libreoffice) instance, I get an OfficeException with a nested UnsatisfiedLinkError coming from hyperic sigar.

First of all, the log file:

The startup looks good:
Code: Select all
2014-07-07 10:59:41,688 [localhost-startStop-1] INFO  org.artofsolving.jodconverter.office.ProcessPoolOfficeManager- ProcessManager implementation is SigarProcessManager
2014-07-07 10:59:41,706 [OfficeProcessThread-0] INFO  org.artofsolving.jodconverter.office.OfficeProcess- starting process with acceptString 'socket,host=127.0.0.1,port=9999,tcpNoDelay=1' and profileDir '/opt/openkm63/temp/.jodconverter_socket_host-127.0.0.1_port-9999'
2014-07-07 10:59:41,721 [OfficeProcessThread-0] INFO  org.artofsolving.jodconverter.office.OfficeProcess- started process; pid = 11757
2014-07-07 10:59:45,604 [OfficeProcessThread-0] INFO  org.artofsolving.jodconverter.office.OfficeConnection- connected: 'socket,host=127.0.0.1,port=9999,tcpNoDelay=1'
No errrors so far. When the OKM is loaded the first time, I got the exception:
Code: Select all
2014-07-07 11:00:18,450 [localhost-startStop-1] INFO  org.artofsolving.jodconverter.office.ProcessPoolOfficeManager- ProcessManager implementation is SigarProcessManager
2014-07-07 11:00:18,466 [localhost-startStop-1] WARN  com.openkm.servlet.RepositoryStartupServlet- failed to start and connect
org.artofsolving.jodconverter.office.OfficeException: failed to start and connect
	at org.artofsolving.jodconverter.office.ManagedOfficeProcess.startAndWait(ManagedOfficeProcess.java:64)
	at org.artofsolving.jodconverter.office.PooledOfficeManager.start(PooledOfficeManager.java:101)
	at org.artofsolving.jodconverter.office.ProcessPoolOfficeManager.start(ProcessPoolOfficeManager.java:62)
	at com.openkm.util.DocConverter.start(DocConverter.java:190)
	at com.openkm.servlet.RepositoryStartupServlet.start(RepositoryStartupServlet.java:273)
	at com.openkm.servlet.RepositoryStartupServlet.init(RepositoryStartupServlet.java:127)
	at javax.servlet.GenericServlet.init(GenericServlet.java:158)
	at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1241)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1154)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1041)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4932)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5218)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)
	at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:919)
	at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1704)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)
Caused by: java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: org.hyperic.sigar.ptql.SigarProcessQuery.create(Ljava/lang/String;)V
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:188)
	at org.artofsolving.jodconverter.office.ManagedOfficeProcess.startAndWait(ManagedOfficeProcess.java:62)
	... 22 more
Caused by: java.lang.UnsatisfiedLinkError: org.hyperic.sigar.ptql.SigarProcessQuery.create(Ljava/lang/String;)V
	at org.hyperic.sigar.ptql.SigarProcessQuery.create(Native Method)
	at org.hyperic.sigar.ptql.ProcessQueryFactory.getQuery(ProcessQueryFactory.java:66)
	at org.hyperic.sigar.ptql.ProcessFinder.find(ProcessFinder.java:68)
	at org.hyperic.sigar.ptql.ProcessFinder.find(ProcessFinder.java:56)
	at org.artofsolving.jodconverter.process.SigarProcessManager.findPid(SigarProcessManager.java:42)
	at org.artofsolving.jodconverter.office.OfficeProcess.start(OfficeProcess.java:65)
	at org.artofsolving.jodconverter.office.OfficeProcess.start(OfficeProcess.java:60)
	at org.artofsolving.jodconverter.office.ManagedOfficeProcess.doStartProcessAndConnect(ManagedOfficeProcess.java:119)
	at org.artofsolving.jodconverter.office.ManagedOfficeProcess.access$000(ManagedOfficeProcess.java:31)
	at org.artofsolving.jodconverter.office.ManagedOfficeProcess$1.run(ManagedOfficeProcess.java:58)
	... 5 more
The setenv.sh looks like this:
Code: Select all
JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC"
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true -Dlog4j.configuration=file://$CATALINA_HOME/conf/log4j.properties"
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=utf-8 -Dmail.mime.ignoreunknownencoding=true"
CATALINA_PID=$CATALINA_HOME/catalina.pid
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib/sigar
I'm using the sigar libraries delivered with the okm tomcat 7 bundle.
Also there is the sigar-1.6.5.132.jar in %tomcatroot%/webapps/OpenKM/WEB-INF/lib.

Does anyone have an idea, whats going wrong here?

Thanks!
 #29207  by jllort
 
No no no, into tomcat/lib should be also copied the /lib/sigar files from our bundle tomcat, seems you've missing this step.

One question, what is the purpose of the -Dmail.mime.ignoreunknownencoding=true ? I've googled loking for this paramter but I've not found anything.
 #29239  by Catscratch
 
Yes I did. I copied them. :-)

I'm Using Debian 7.5 x64.

If I remove the libs the OO process couldn't be started at all. But with the libs the process gets startet, but the connection fails. I already tried diffent ports.

Here is the log about the OO process startup:
Code: Select all
2014-07-11 10:58:05,436 [localhost-startStop-1] INFO  org.artofsolving.jodconverter.office.ProcessPoolOfficeManager- ProcessManager implementation is SigarProcessManager
2014-07-11 10:58:05,468 [OfficeProcessThread-0] INFO  org.artofsolving.jodconverter.office.OfficeProcess- starting process with acceptString 'socket,host=127.0.0.1,port=9999,tcpNoDelay=1' and profileDir '/opt/openkm63/temp/.jodconverter_socket_host-127.0.0.1_port-9999'
2014-07-11 10:58:05,478 [OfficeProcessThread-0] INFO  org.artofsolving.jodconverter.office.OfficeProcess- started process; pid = 17933
2014-07-11 10:58:09,506 [OfficeProcessThread-0] INFO  org.artofsolving.jodconverter.office.OfficeConnection- connected: 'socket,host=127.0.0.1,port=9999,tcpNoDelay=1'
Than a few moments later comes the "failed to start and connect"-error (see my first post).

Regards.
 #29257  by pavila
 
Have you tried the Tomcat + OpenKM bundle? Does it work or also fail starting OpenOffice service? I have not tried with Tomcat 8, but it should work with a recent Tomcat 7 release.
 #29259  by jllort
 
When you start application should not get any openoffice or libreoffice aplication running. Sometimes there's a openoffice menu in systry icon. Ensure everything is closed, otherside the service can not starting correctly.

In your last log seems started correctly:
Code: Select all
2014-07-07 10:59:41,721 [OfficeProcessThread-0] INFO  org.artofsolving.jodconverter.office.OfficeProcess- started process; pid = 11757
2014-07-07 10:59:45,604 [OfficeProcessThread-0] INFO  org.artofsolving.jodconverter.office.OfficeConnection- connected: 'socket,host=127.0.0.1,port=9999,tcpNoDelay=1'
 #29262  by Catscratch
 
Yeah, it is started correctly. But after
Code: Select all
2014-07-07 10:59:41,721 [OfficeProcessThread-0] INFO  org.artofsolving.jodconverter.office.OfficeProcess- started process; pid = 11757
2014-07-07 10:59:45,604 [OfficeProcessThread-0] INFO  org.artofsolving.jodconverter.office.OfficeConnection- connected: 'socket,host=127.0.0.1,port=9999,tcpNoDelay=1'
comes
Code: Select all
2014-07-07 11:00:18,450 [localhost-startStop-1] INFO  org.artofsolving.jodconverter.office.ProcessPoolOfficeManager- ProcessManager implementation is SigarProcessManager
2014-07-07 11:00:18,466 [localhost-startStop-1] WARN  com.openkm.servlet.RepositoryStartupServlet- failed to start and connect
org.artofsolving.jodconverter.office.OfficeException: failed to start and connect
   at org.artofsolving.jodconverter.office.ManagedOfficeProcess.startAndWait(ManagedOfficeProcess.Java:64)
   at org.artofsolving.jodconverter.office.PooledOfficeManager.start(PooledOfficeManager.Java:101)
   at org.artofsolving.jodconverter.office.ProcessPoolOfficeManager.start(ProcessPoolOfficeManager.Java:62)
   at com.openkm.util.DocConverter.start(DocConverter.Java:190)
   at com.openkm.servlet.RepositoryStartupServlet.start(RepositoryStartupServlet.Java:273)
   at com.openkm.servlet.RepositoryStartupServlet.init(RepositoryStartupServlet.Java:127)
   at javax.servlet.GenericServlet.init(GenericServlet.Java:158)
   at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.Java:1241)
   at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.Java:1154)
   at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.Java:1041)
   at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.Java:4932)
   at org.apache.catalina.core.StandardContext.startInternal(StandardContext.Java:5218)
   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.Java:724)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.Java:700)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.Java:714)
   at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.Java:919)
   at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.Java:1704)
   at Java.util.concurrent.Executors$RunnableAdapter.call(Executors.Java:471)
   at Java.util.concurrent.FutureTask.run(FutureTask.Java:262)
   at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1145)
   at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:615)
   at Java.lang.Thread.run(Thread.Java:744)
Caused by: Java.util.concurrent.ExecutionException: Java.lang.UnsatisfiedLinkError: org.hyperic.sigar.ptql.SigarProcessQuery.create(Ljava/lang/String;)V
   at Java.util.concurrent.FutureTask.report(FutureTask.Java:122)
   at Java.util.concurrent.FutureTask.get(FutureTask.Java:188)
   at org.artofsolving.jodconverter.office.ManagedOfficeProcess.startAndWait(ManagedOfficeProcess.Java:62)
   ... 22 more
Caused by: Java.lang.UnsatisfiedLinkError: org.hyperic.sigar.ptql.SigarProcessQuery.create(Ljava/lang/String;)V
   at org.hyperic.sigar.ptql.SigarProcessQuery.create(Native Method)
   at org.hyperic.sigar.ptql.ProcessQueryFactory.getQuery(ProcessQueryFactory.Java:66)
   at org.hyperic.sigar.ptql.ProcessFinder.find(ProcessFinder.Java:68)
   at org.hyperic.sigar.ptql.ProcessFinder.find(ProcessFinder.Java:56)
   at org.artofsolving.jodconverter.process.SigarProcessManager.findPid(SigarProcessManager.Java:42)
   at org.artofsolving.jodconverter.office.OfficeProcess.start(OfficeProcess.Java:65)
   at org.artofsolving.jodconverter.office.OfficeProcess.start(OfficeProcess.Java:60)
   at org.artofsolving.jodconverter.office.ManagedOfficeProcess.doStartProcessAndConnect(ManagedOfficeProcess.Java:119)
   at org.artofsolving.jodconverter.office.ManagedOfficeProcess.access$000(ManagedOfficeProcess.Java:31)
   at org.artofsolving.jodconverter.office.ManagedOfficeProcess$1.run(ManagedOfficeProcess.Java:58)
   ... 5 more
So there must be another problem when trying to connect. But I can't figure out which problem.

As far as I can see, sigar causes it:
Code: Select all
Caused by: Java.util.concurrent.ExecutionException: Java.lang.UnsatisfiedLinkError: org.hyperic.sigar.ptql.SigarProcessQuery.create(Ljava/lang/String;)V
   at Java.util.concurrent.FutureTask.report(FutureTask.Java:122)
   at Java.util.concurrent.FutureTask.get(FutureTask.Java:188)
   at org.artofsolving.jodconverter.office.ManagedOfficeProcess.startAndWait(ManagedOfficeProcess.Java:62)
   ... 22 more
I'm out of options. I hoped you got an idea where I can start further investigation.
Because sigar is in the class path.

I also tried it on diffent machines and distributions...everywhere the same problem. The only think I changed is running everything in a Tomcat 8.0.9. Do you know if I need some other/newer sigar libraries for Tomcat 8? But usally sigar functionality should not depend on the Tomcat version, should it?
 #29285  by Catscratch
 
Yes, with the Tomcat 7 bundle, it worked!

The log in Tomcat 7 shows the following:
Code: Select all
2014-07-14 09:51:01,581 [localhost-startStop-1] INFO  org.artofsolving.jodconverter.office.ProcessPoolOfficeManager- ProcessManager implementation is SigarProcessManager
2014-07-14 09:51:01,606 [OfficeProcessThread-0] WARN  org.artofsolving.jodconverter.office.OfficeProcess- profile dir '/opt/okmtmp/temp/.jodconverter_socket_host-127.0.0.1_port-2002' already exists; deleting
2014-07-14 09:51:01,622 [OfficeProcessThread-0] INFO  org.artofsolving.jodconverter.office.OfficeProcess- starting process with acceptString 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' and profileDir '/opt/okmtmp/temp/.jodconverter_socket_host-127.0.0.1_port-2002'
2014-07-14 09:51:01,647 [OfficeProcessThread-0] INFO  org.artofsolving.jodconverter.office.OfficeProcess- started process; pid = 10751
2014-07-14 09:51:05,954 [OfficeProcessThread-0] INFO  org.artofsolving.jodconverter.office.OfficeConnection- connected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1'
Interesting is the immediate connection (last line). With the Tomcat 8 I never got the "connected" message, only the "started process" message.

About Us

OpenKM is part of the management software. A management software is a program that facilitates the accomplishment of administrative tasks. OpenKM is a document management system that allows you to manage business content and workflow in a more efficient way. Document managers guarantee data protection by establishing information security for business content.