Page 1 of 1

UnsatisfiedLinkError using sigar / Openoffice / Libreoffice

PostPosted:Mon Jul 07, 2014 9:57 am
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!

Re: UnsatisfiedLinkError using sigar / Openoffice / LibreOff

PostPosted:Wed Jul 09, 2014 7:24 am
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.

Re: UnsatisfiedLinkError using sigar / Openoffice / LibreOff

PostPosted:Wed Jul 09, 2014 11:28 am
by Catscratch
The libs are in the tomcat/lib folder.

The WEB-INF/lib only contains the JAR!

Besides, the -Dmail parameter is only for javax.mail, because sometimes it crashes, when getting wrong or strange mail encoding.

Re: UnsatisfiedLinkError using sigar / Openoffice / LibreOff

PostPosted:Fri Jul 11, 2014 8:27 am
by jllort
I talk about about if you have copied files from our bundle /tomcat/lib/sigar to your_tomcat/lib/sigar ?
What is your OS ?

Re: UnsatisfiedLinkError using sigar / Openoffice / LibreOff

PostPosted:Fri Jul 11, 2014 9:07 am
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.

Re: UnsatisfiedLinkError using sigar / Openoffice / LibreOff

PostPosted:Fri Jul 11, 2014 5:33 pm
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.

Re: UnsatisfiedLinkError using sigar / Openoffice / LibreOff

PostPosted:Fri Jul 11, 2014 6:44 pm
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'

Re: UnsatisfiedLinkError using sigar / Openoffice / LibreOff

PostPosted:Sat Jul 12, 2014 8:01 am
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?

Re: UnsatisfiedLinkError using sigar / Openoffice / LibreOff

PostPosted:Sat Jul 12, 2014 6:24 pm
by pavila
Sigar does not depends on Tomcat version, I only want to know if provided Tomcat + OpenKM bundle works.

Re: UnsatisfiedLinkError using sigar / Openoffice / LibreOff

PostPosted:Mon Jul 14, 2014 7:55 am
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.