Open-xchange-documentconverter

After the Update of Open-Xchange from Version 7.8.3-22 to Version 7.8.3-23 the open-xchange-document-converter does not work anymore after the reboot of the Server. I can not see thumbnails and Previews of attached office-documents.

Error in log:

Documentconverter remote connection could not be established => please check remote converter setup (remoteurl=http://localhost:8008/documentconverterws, async_request=true)
2017-05-17T15:07:47,282+0200 ERROR [OXWorker-0000327] com.openexchange.ajax.requesthandler.DispatcherServlet.logException(DispatcherServlet.java:690)
Error processing request.

netstat does not show something on this port anymore:

root@mail:~# netstat -tulpn |grep 80
tcp        0      0 127.0.0.1:8090          0.0.0.0:*               LISTEN      2166/python2.7
tcp6       0      0 127.0.0.1:9999          :::*                    LISTEN      1080/java
tcp6       0      0 :::80                   :::*                    LISTEN      2722/apache2
tcp6       0      0 127.0.0.1:5701          :::*                    LISTEN      1080/java
tcp6       0      0 :::42245                :::*                    LISTEN      1080/java
tcp6       0      0 127.0.0.1:8009          :::*                    LISTEN      1080/java

Starting or restarting the open-xchange-documentconverter-server does not bring back something listening on that port.

i went back to an older snapshot on my testing-vm just to verify. The document-converter works as expected , the thumbnals of the attachments is created the preview works and netstat shows something listening on Port 8008:

root@ucs-8633:~# netstat -tulpn | grep 80
tcp        0      0 127.0.0.1:8090          0.0.0.0:*               LISTEN      31002/python2.7
tcp6       0      0 :::80                   :::*                    LISTEN      964/apache2
tcp6       0      0 127.0.0.1:8008          :::*                    LISTEN      827/java
tcp6       0      0 127.0.0.1:8009          :::*                    LISTEN      3350/java

After updating that machine again, the converter stopped working.

Any help would be appreciated.

Greets
Matthias Hütter

Hi! Could you please add your UCS version? Just run

univention-app info

and add the output :slight_smile:

root@mail:~# univention-app info
UCS: 4.2-0 errata15
App Center compatibility: 4
Installed: mailserver=11 open-xchange-text=7.8.3-17-ucs1 oxseforucs=7.8.3-17-ucs1
Upgradable:

Open-xchange has identified the problem and is working on a fix.
I will share news here, when I get them.

Open-xchange just released a fix for this Problem: http://software.open-xchange.com/products/appsuite/doc/Release_Notes_for_Patch_Release_4176_7.8.3_2017-05-19.pdf

Document previews work as expected in my Test-VM.

Thank you for your Help @troeder

Have a nice Weekend :sunny:

Sadly my production machine throws a new errror:

com.openexchange.exception.OXException: PREVIEW-0005 Categories=ERROR Message='Thumbnail image not available. Reason: PreviewDocument's thumbnail input stream is null' exceptionID=2100877259-75
        com.openexchange.exception.locale: de_DE
        at com.openexchange.exception.OXExceptionFactory.create(OXExceptionFactory.java:176)
        at com.openexchange.exception.OXExceptionFactory.create(OXExceptionFactory.java:166)
        at com.openexchange.exception.OXExceptionFactory.create(OXExceptionFactory.java:139)
        at com.openexchange.preview.PreviewExceptionCodes.create(PreviewExceptionCodes.java:158)
        at com.openexchange.ajax.requesthandler.converters.preview.PreviewImageResultConverter.convert(PreviewImageResultConverter.java:331)
        at com.openexchange.ajax.requesthandler.DefaultConverter.convert(DefaultConverter.java:157)
        at com.openexchange.ajax.requesthandler.customizer.ConversionCustomizer.outgoing(ConversionCustomizer.java:91)
        at com.openexchange.ajax.requesthandler.DefaultDispatcher.customizeResult(DefaultDispatcher.java:372)
        at com.openexchange.ajax.requesthandler.DefaultDispatcher.perform(DefaultDispatcher.java:224)
        at com.openexchange.ajax.requesthandler.DispatcherServlet.handle(DispatcherServlet.java:469)
        at com.openexchange.ajax.requesthandler.DispatcherServlet.doGet(DispatcherServlet.java:369)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at com.openexchange.ajax.AJAXServlet.doService(AJAXServlet.java:545)
        at com.openexchange.ajax.SessionServlet.doService(SessionServlet.java:184)
        at com.openexchange.ajax.requesthandler.DispatcherServlet.service(DispatcherServlet.java:269)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at com.openexchange.http.grizzly.service.http.OSGiServletHandler$FilterChainImpl.doFilter(OSGiServletHandler.java:445)
        at com.openexchange.http.grizzly.servletfilter.RequestReportingFilter.doFilter(RequestReportingFilter.java:135)
        at com.openexchange.http.grizzly.service.http.OSGiServletHandler$FilterChainImpl.doFilter(OSGiServletHandler.java:435)
        at com.openexchange.http.grizzly.servletfilter.WrappingFilter.doFilter(WrappingFilter.java:206)
        at com.openexchange.http.grizzly.service.http.OSGiServletHandler$FilterChainImpl.doFilter(OSGiServletHandler.java:435)
        at com.openexchange.http.grizzly.service.http.OSGiAuthFilter.doFilter(OSGiAuthFilter.java:140)
        at com.openexchange.http.grizzly.service.http.OSGiServletHandler$FilterChainImpl.doFilter(OSGiServletHandler.java:435)
        at com.openexchange.http.grizzly.service.http.OSGiServletHandler$FilterChainImpl.invokeFilterChain(OSGiServletHandler.java:413)
        at org.glassfish.grizzly.servlet.ServletHandler.doServletService(ServletHandler.java:252)
        at org.glassfish.grizzly.servlet.ServletHandler.service(ServletHandler.java:194)
        at com.openexchange.http.grizzly.service.http.OSGiMainHandler.service(OSGiMainHandler.java:232)
        at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:164)
        at org.glassfish.grizzly.http.server.HttpHandlerChain.service(HttpHandlerChain.java:196)
        at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:164)
        at org.glassfish.grizzly.http.server.OXHttpServerFilter.handleRead(OXHttpServerFilter.java:363)
        at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:265)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:134)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
        at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:78)
        at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:770)
        at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
        at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
        at com.openexchange.threadpool.internal.CustomThreadPoolExecutor$MDCProvidingRunnable.run(CustomThreadPoolExecutor.java:2524)
        at com.openexchange.threadpool.internal.CustomThreadPoolExecutor$Worker.runTask(CustomThreadPoolExecutor.java:836)
        at com.openexchange.threadpool.internal.CustomThreadPoolExecutor$Worker.run(CustomThreadPoolExecutor.java:863)
        at java.lang.Thread.run(Thread.java:745)
2017-05-19T14:35:12,203+0200 INFO  [OXTimer-0000098] com.openexchange.usm.session.tasks.USMSessionCleanupTask.run(USMSessionCleanupTask.java:110)

Still get no Previews in this Machine

Edit: this is the same Error as before, just a little bit later in the log.
The Service is still not running and listening on Port 8008

The Fix for the main Problem is in Post #5
but i did something really stupid.Before the patch was released i wanted to manually start on my Production Machine the commandline of the java-process which was listening on Port 8008 see if there is some Output which leads to any Solution.
Starting this commandlline which i figured out with ps -fp as root broke my installation.
I guess starting this as root changes some access rights. Could someone please tell me what to fix to get out of this situation.

After the update I had to manually restart the service:
systemctl status open-xchange-documentconverter-server.service
Then it worked.

I’m attaching the permissions I have in /opt/open-xchange.
ox_perms.txt (1.4 MB)

You can create the same listing with getfacl -R /opt/open-xchange > ox_perms_mine.txt and then use diff ox_perms.txt ox_perms_mine.txt to find differences.
(My favorite diff-viewer is meld.)

Thank you very much for you help!
I restarted already the complete server which did not help
There are that many differences in our Folders which makes it impossible to compare.
Even my working Testmachine differs so much (especially the order of the entries)
Maybe the logentry leads also to a solution?:

java.lang.RuntimeException: Error initializing storage.
<------>at org.eclipse.osgi.internal.framework.EquinoxContainer.<init>(EquinoxContainer.java:68)
<------>at org.eclipse.osgi.launch.Equinox.<init>(Equinox.java:31)
<------>at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:303)
<------>at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:239)
<------>at org.eclipse.core.runtime.adaptor.EclipseStarter.main(EclipseStarter.java:216)
Caused by: java.io.IOException: Keine Berechtigung
<------>at java.io.UnixFileSystem.createFileExclusively(Native Method)
<------>at java.io.File.createTempFile(File.java:2001)
<------>at org.eclipse.osgi.storagemanager.StorageManager.initializeInstanceFile(StorageManager.java:187)
<------>at org.eclipse.osgi.storagemanager.StorageManager.open(StorageManager.java:707)
<------>at org.eclipse.osgi.storage.Storage.getChildStorageManager(Storage.java:1785)
<------>at org.eclipse.osgi.storage.Storage.getInfoInputStream(Storage.java:1802)
<------>at org.eclipse.osgi.storage.Storage.<init>(Storage.java:128)
<------>at org.eclipse.osgi.storage.Storage.createStorage(Storage.java:87)
<------>at org.eclipse.osgi.internal.framework.EquinoxContainer.<init>(EquinoxContainer.java:66)
<------>... 4 more

The logfiles in /var/log/open-xchange/documentconverter/osgi.log lead me to permission-problems in
/opt/open-xchange/documentconverter/osgi/org.eclipse.osgi
i could not find any differences to my working installation so i decided to move the complete Content of this folder away and restarted the document-converter-server.
After this the files and Folders in this Folder got recreated and the Document Preview in OX is working again.

Excellent.

Btw.: I found that using
find /opt/open-xchange -exec ls -ld {} + | awk {'printf "%s %s %s %s\n", $1,$3,$4,$9 '}
would make a nicely sorted listing, well suited for comparison, without clutter from file sizes and such.

Mastodon