Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-18159

LibreOffice fails to start

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Fix
    • Major
    • None
    • 12.9
    • Office
    • None
    • Xwiki 12.9
      Ubuntu 18.04.5 LTS (Bionic Beaver)
    • Unknown
    • N/A
    • N/A

    Description

      Xwiki 12.9 on Ubuntu 18.04.5 LTS (Bionic Beaver). After installing LibreOffice

      apt-get install libreoffice

      (Version: 1:6.0.7-0ubuntu0.18.04.10) and enabling it in the conf, restarting Tomcat9 produces the error:

      Error while connecting / starting the office server.

      Originally I found that LibreOffice was trying to write to the tomcat home directory, so I added:

      ReadWritePaths=/local/home/tomcat

       to 

      /etc/systemd/system/tomcat9.service.d/xwiki-tomcat9-systemd.conf

      and after configuring the tomcat home dir, resolved that issue. However, I still cannot get it to start. If I run tomcat as root it works, but starting it from systemd (tomcat user) fails.

       I have tried enabling TRACE logging for org.xwiki.officeimporter.server, but I receive no further messages describing the error.

      OpenOffice config in xwiki.proerties: 

      #-------------------------------------------------------------------------------------
      # Settings for the OpenOffice server instance consumed by the OfficeImporter component
      #-------------------------------------------------------------------------------------
      #-# [Since 1.9M2]
      #-# Type of the openoffice server instance used by officeimporter component.
      #-# 0 - Internally managed server instance. (Default)
      #-# 1 - Externally managed (local) server instance.
      openoffice.serverType = 0
      #-# [Since 12.1RC1]
      #-# Port numbers used for connecting to the openoffice server instance.
      #-# For an internally managed server instance, it will create the process for all ports.
      #-# For an externally managed server instance, only the first server port is taken into account.
      openoffice.serverPorts = 8100,8101
      #-# [Since 1.9M2]
      #-# If the openoffice server should be started / connected upon XE start.
      #-# Default value is false
      openoffice.autoStart = true
      #-# [Since 1.8RC3]
      #-# Path to openoffice installation (serverType:0 only).
      #-# If no path is provided, a default value will be calculated based on the operating environment.
      openoffice.homePath = /usr/lib/libreoffice/
      #-# [Since 1.8RC3]
      #-# Path to openoffice execution profile (serverType:0 only).
      #-# If no path is provided, a default value will be calculated based on the operating environment.
      #openoffice.profilePath = /home/user/.openoffice.org/3
      #-# [Since 1.8RC3]
      #-# Maximum number of simultaneous conversion tasks to be handled by a single openoffice process (serverType:0 only).
      #-# Default value is 50
      #openoffice.maxTasksPerProcess = 50
      #-# [Since 1.8RC3]
      #-# Timeout for conversion tasks (in milliseconds) (serverType:0 only).
      #-# Default value is 60 seconds
      #openoffice.taskExecutionTimeout = 60000
      

       From catalina.out, one message stands out:

      Office process died with exit code 77

      Full output:

      2020-12-09 13:20:56,304 [main] ERROR .OfficeServerLifecycleListener - Error while connecting / starting the office server.
      org.xwiki.officeimporter.server.OfficeServerException: Error while connecting / starting the office server.
      at org.xwiki.officeimporter.internal.server.DefaultOfficeServer.start(DefaultOfficeServer.java:208)
      at org.xwiki.officeimporter.internal.server.OfficeServerLifecycleListener.startOfficeServer(OfficeServerLifecycleListener.java:98)
      at org.xwiki.officeimporter.internal.server.OfficeServerLifecycleListener.onEvent(OfficeServerLifecycleListener.java:85)
      at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:320)
      at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:285)
      at org.xwiki.observation.internal.DefaultObservationManager.notify(DefaultObservationManager.java:337)
      at org.xwiki.container.servlet.XWikiServletContextListener.contextInitialized(XWikiServletContextListener.java:127)
      at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4668)
      at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5136)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
      at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713)
      at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
      at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695)
      at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:631)
      at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1832)
      at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
      at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
      at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:526)
      at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:425)
      at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1577)
      at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
      at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
      at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:424)
      at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:367)
      at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:929)
      at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:831)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1377)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1367)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
      at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
      at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:902)
      at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
      at org.apache.catalina.core.StandardService.startInternal(StandardService.java:423)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
      at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:928)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
      at org.apache.catalina.startup.Catalina.start(Catalina.java:638)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:566)
      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)
      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:496)
      Caused by: org.jodconverter.office.OfficeException: Office process died with exit code 77
      at org.jodconverter.office.ConnectRetryable.attempt(ConnectRetryable.java:87)
      at org.jodconverter.office.AbstractRetryable.execute(AbstractRetryable.java:76)
      at org.jodconverter.office.ConnectRetryable.execute(ConnectRetryable.java:26)
      at org.jodconverter.office.OfficeProcessManager.doStartProcessAndConnect(OfficeProcessManager.java:104)
      at org.jodconverter.office.OfficeProcessManager.lambda$startAndWait$3(OfficeProcessManager.java:243)
      at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      at java.base/java.lang.Thread.run(Thread.java:834)
      Caused by: org.jodconverter.office.OfficeConnectionException: Connection failed: ‘socket,host=127.0.0.1,port=8100,tcpNoDelay=1’; java.net.ConnectException: Connection refused (Connection refused)
      at org.jodconverter.office.OfficeConnection.connect(OfficeConnection.java:172)
      at org.jodconverter.office.ConnectRetryable.attempt(ConnectRetryable.java:61)
      … 8 common frames omitted
      Caused by: com.sun.star.connection.NoConnectException: java.net.ConnectException: Connection refused (Connection refused)
      at com.sun.star.lib.connections.socket.socketConnector.connect(socketConnector.java:144)
      at com.sun.star.comp.connections.Connector.connect(Connector.java:119)
      at org.jodconverter.office.OfficeConnection.connect(OfficeConnection.java:106)
      … 9 common frames omitted

      Googling around it appears that Office process died with exit code 77 is a permissions issue…
      GitHub jodconverter issue

      Attachments

        Activity

          People

            surli Simon Urli
            TCarr Ted Carr
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: