Upload Timeout
Symptom
A SocketTimeoutException occurs while uploading a file:
2020-06-06 07:36:31,716 [qtp462334223-63] ERROR CmisAtomPubServlet - - OMN-ROOT_NODE_CONFIGURATION-API - service: updateFile - rnc: CMIS - Unknown error occurred. See OMN logs for further details (PUT http://www.peterhahn-omn.de/cmisAtom/ThomasVonAagh/content?id=445703613_IMG_DOC&changeToken=1591421312000-token&overwriteFlag=true)
org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: - OMN-ROOT_NODE_CONFIGURATION-API - service: updateFile - rnc: CMIS - Unknown error occurred. See OMN logs for further details
at de.apollon.cmis.server.omn.rest.core.comfort.provider.RestUtil.getClientErrorException(RestUtil.java:24)
at de.apollon.cmis.server.omn.rest.core.comfort.provider.RootNodeConfigurationComfortApiImpl.updateFile(RootNodeConfigurationComfortApiImpl.java:170)
at de.apollon.cmis.server.omn.fetch.rest.internal.OmnFetchRestProvider.setContentStream(OmnFetchRestProvider.java:282)
at de.apollon.cmis.server.repository.omn.file.internal.CmisOmnFileRepositoryImpl.setContentStream(CmisOmnFileRepositoryImpl.java:698)
at de.apollon.cmis.server.service.gate.internal.CmisGateServiceImpl.setContentStream(CmisGateServiceImpl.java:865)
at de.apollon.cmis.server.service.api.AbstractCmisServiceWrapper.setContentStream(AbstractCmisServiceWrapper.java:312)
at de.apollon.cmis.server.service.factory.internal.ConformanceLogCmisServiceWrapper.setContentStream(ConformanceLogCmisServiceWrapper.java:937)
at de.apollon.cmis.server.service.api.AbstractCmisServiceWrapper.setContentStream(AbstractCmisServiceWrapper.java:312)
at de.apollon.cmis.server.service.api.AbstractCmisServiceWrapper.setContentStream(AbstractCmisServiceWrapper.java:312)
at de.apollon.cmis.server.service.factory.internal.CallContextServiceWrapper.setContentStream(CallContextServiceWrapper.java:798)
at de.apollon.cmis.server.service.factory.internal.ExtendedLoggingCmisServiceWrapper.setContentStream(ExtendedLoggingCmisServiceWrapper.java:750)
at org.apache.chemistry.opencmis.server.impl.atompub.ObjectService$SetOrAppendContentStream.serve(ObjectService.java:335)[86:de.apollon.cmis.server.chemistry.opencmis.wrap:1.0.0.202004132220]
at org.apache.chemistry.opencmis.server.shared.Dispatcher.dispatch(Dispatcher.java:92)[86:de.apollon.cmis.server.chemistry.opencmis.wrap:1.0.0.202004132220]
at org.apache.chemistry.opencmis.server.impl.atompub.CmisAtomPubServlet.dispatch(CmisAtomPubServlet.java:295)[86:de.apollon.cmis.server.chemistry.opencmis.wrap:1.0.0.202004132220]
at org.apache.chemistry.opencmis.server.impl.atompub.CmisAtomPubServlet.service(CmisAtomPubServlet.java:206)[86:de.apollon.cmis.server.chemistry.opencmis.wrap:1.0.0.202004132220]
at de.apollon.cmis.server.servlet.internal.AplnCmisAtomPubServlet.service(AplnCmisAtomPubServlet.java:71)[138:de.apollon.cmis.server.servlet:5.5.0.202004132220]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)[18:org.apache.felix.http.servlet-api:1.1.2]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)[23:org.eclipse.jetty.servlet:9.2.14.v20151106]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)[23:org.eclipse.jetty.servlet:9.2.14.v20151106]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)[32:org.ops4j.pax.web.pax-web-jetty:4.2.4]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)[22:org.eclipse.jetty.server:9.2.14.v20151106]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)[25:org.eclipse.jetty.security:9.2.14.v20151106]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)[22:org.eclipse.jetty.server:9.2.14.v20151106]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)[22:org.eclipse.jetty.server:9.2.14.v20151106]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:271)[32:org.ops4j.pax.web.pax-web-jetty:4.2.4]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)[23:org.eclipse.jetty.servlet:9.2.14.v20151106]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)[22:org.eclipse.jetty.server:9.2.14.v20151106]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)[22:org.eclipse.jetty.server:9.2.14.v20151106]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)[22:org.eclipse.jetty.server:9.2.14.v20151106]
at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)[32:org.ops4j.pax.web.pax-web-jetty:4.2.4]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)[22:org.eclipse.jetty.server:9.2.14.v20151106]
at org.eclipse.jetty.server.Server.handle(Server.java:499)[22:org.eclipse.jetty.server:9.2.14.v20151106]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)[22:org.eclipse.jetty.server:9.2.14.v20151106]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)[22:org.eclipse.jetty.server:9.2.14.v20151106]
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)[27:org.eclipse.jetty.io:9.2.14.v20151106]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)[28:org.eclipse.jetty.util:9.2.14.v20151106]
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)[28:org.eclipse.jetty.util:9.2.14.v20151106]
at java.lang.Thread.run(Thread.java:748)[:1.8.0_222]
Caused by: org.osgi.framework.ServiceException: REMOTE
at org.apache.cxf.dosgi.common.proxy.ExceptionMapper.mapException(ExceptionMapper.java:50)
at org.apache.cxf.dosgi.common.proxy.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:59)
at com.sun.proxy.$Proxy55.updateFile(Unknown Source)
at de.apollon.cmis.server.omn.rest.core.comfort.provider.RootNodeConfigurationComfortApiImpl.updateFile(RootNodeConfigurationComfortApiImpl.java:166)
... 36 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_222]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_222]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_222]
at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_222]
at org.apache.cxf.dosgi.common.proxy.ServiceInvocationHandler$1.run(ServiceInvocationHandler.java:54)
at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_222]
at org.apache.cxf.dosgi.common.proxy.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:52)
... 38 more
Caused by: javax.ws.rs.ProcessingException: java.net.SocketTimeoutException: SocketTimeoutException invoking http://wrk.p.phahn.omn.ap.farm:8070/api/v1/rncs/CMIS/files/445703613/bin: Read timed out
at org.apache.cxf.jaxrs.client.AbstractClient.checkClientException(AbstractClient.java:619)
at org.apache.cxf.jaxrs.client.AbstractClient.preProcessResult(AbstractClient.java:595)
at org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:782)
at org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:235)
at com.sun.proxy.$Proxy86.updateFile(Unknown Source)
... 45 more
Caused by: java.net.SocketTimeoutException: SocketTimeoutException invoking http://wrk.p.phahn.omn.ap.farm:8070/api/v1/rncs/CMIS/files/445703613/bin: Read timed out
at sun.reflect.GeneratedConstructorAccessor121.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_222]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_222]
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1387)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1371)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:658)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:691)
at org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:780)
... 47 more
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)[:1.8.0_222]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)[:1.8.0_222]
at java.net.SocketInputStream.read(SocketInputStream.java:171)[:1.8.0_222]
at java.net.SocketInputStream.read(SocketInputStream.java:141)[:1.8.0_222]
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)[:1.8.0_222]
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)[:1.8.0_222]
at java.io.BufferedInputStream.read(BufferedInputStream.java:345)[:1.8.0_222]
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735)[:1.8.0_222]
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)[:1.8.0_222]
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1593)[:1.8.0_222]
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)[:1.8.0_222]
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)[:1.8.0_222]
at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream$2.run(URLConnectionHTTPConduit.java:377)
at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream$2.run(URLConnectionHTTPConduit.java:373)
at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_222]
at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.getResponseCode(URLConnectionHTTPConduit.java:373)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.doProcessResponseCode(HTTPConduit.java:1584)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1612)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1557)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1358)
... 53 more
Solution
Set the property timeout in file de.apollon.restclient.omn.api-*.cfg to a higher value. Default is 30000 which are 30 seconds. You can for example set it to 10 minutes (timeout=600000)
endpoint = http://localhost:8070/api/v1
### the token used for authorization at OMN-REST API
### this token must match the 'api.secrets' property in omn_preferences.properties
authorization.token = eyJraWQiOiJjbWlzIiwidHlwIjoiSldUIiwiYWxnIjoiSFM1MTIifQ.eyJzdWIiOiJjbWlzIiwiaW1wZXJzb25hdGUiOiJhZG1pbiIsInVzZXJuYW1lIjoiY21pcyJ9.uGfOhSPws-4QIrbwJuli-1MFq0-q7yMaNGca5ZXHWK_h4dTaV63VfVSOYp_E3dfHsG9_oEzthZmhtvI0HaU-3g
timeout=600000
allowed.version.range=[2,3.0)
Download Failure
Symptom
CMIS Server Log says:
org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: - OMN-ROOT_NODE_CONFIGURATION-API - service: getFileBinary - rnc: Artikelbilder - Unknown error occurred. See OMN logs for further details
...
Caused by: javax.ws.rs.client.ResponseProcessingException: Problem with reading the data, class java.io.File, ContentType: application/octet-stream.
at org.apache.cxf.jaxrs.impl.ResponseImpl.reportMessageHandlerProblem(ResponseImpl.java:434)
at org.apache.cxf.jaxrs.impl.ResponseImpl.doReadEntity(ResponseImpl.java:376)
at org.apache.cxf.jaxrs.client.AbstractClient.readBody(AbstractClient.java:539)
at org.apache.cxf.jaxrs.client.ClientProxyImpl.handleResponse(ClientProxyImpl.java:894)
at org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:788)
at org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:235)
at com.sun.proxy.$Proxy88.getFileBinary(Unknown Source)
... 41 more
Caused by: java.nio.file.NoSuchFileException: /tmp/cxf-tmp-5154940327655541054/File1cecd87a-0f8c-4abf-a5f3-324ec2b8fd396680533563104281098jaxrs
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)[:1.8.0_151]
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)[:1.8.0_151]
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)[:1.8.0_151]
at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)[:1.8.0_151]
at java.nio.file.Files.newByteChannel(Files.java:361)[:1.8.0_151]
at java.nio.file.Files.createFile(Files.java:632)[:1.8.0_151]
at java.nio.file.TempFileHelper.create(TempFileHelper.java:138)[:1.8.0_151]
at java.nio.file.TempFileHelper.createTempFile(TempFileHelper.java:161)[:1.8.0_151]
at java.nio.file.Files.createTempFile(Files.java:852)[:1.8.0_151]
at org.apache.cxf.helpers.FileUtils.createTempFile(FileUtils.java:290)
at org.apache.cxf.jaxrs.provider.BinaryDataProvider.readFrom(BinaryDataProvider.java:115)
at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBodyReader(JAXRSUtils.java:1355)
at org.apache.cxf.jaxrs.impl.ResponseImpl.doReadEntity(ResponseImpl.java:367)
... 46 more
Server Does Not Start On Systemd
Symptom
"systemd start cmis" fails with the following error message:
New main PID 2095 does not belong to service, and PID file is not owned by root. Refusing.
Solution
Adjust the systemd service script either with systemctl edit --full cmis.service or vi /usr/lib/systemd/system/cmis.service. It should look like this:
[Unit]
Description=CMIS API for OMN
After=network.target
[Service]
Type=forking
WorkingDirectory=/opt/cmis
ExecStart=/opt/cmis/bin/cmis-service start
ExecStop=/opt/cmis/bin/cmis-service stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
After saving use "systemctl daemon-reload" before restarting.
See also: RND-849