[Libreoffice-bugs] [Bug 124797] New: LibreOffice hangs after multiple PDF export calls
bugzilla-daemon at bugs.documentfoundation.org
bugzilla-daemon at bugs.documentfoundation.org
Wed Apr 17 14:14:19 UTC 2019
https://bugs.documentfoundation.org/show_bug.cgi?id=124797
Bug ID: 124797
Summary: LibreOffice hangs after multiple PDF export calls
Product: LibreOffice
Version: 6.1.2.1 release
Hardware: x86 (IA32)
OS: Linux (All)
Status: UNCONFIRMED
Severity: normal
Priority: medium
Component: Writer
Assignee: libreoffice-bugs at lists.freedesktop.org
Reporter: essj at ccf.org
Description:
We have a web application which uses LibreOffice in headless mode to convert
HTML documents to PDF documents to be emailed to users. After some time,
LibreOffice stops responding to connection requests. Our conversion code
reports the following exception:
00:52:24,196 [ ] ERROR xxx.xxx.ConvertHtmlToPDF - Exception
converting document: null
com.sun.star.lang.DisposedException
at
com.sun.star.lib.uno.environments.remote.JobQueue.removeJob(JobQueue.java:201)
at
com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:308)
at
com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:281)
at
com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:81)
at
com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:618)
at
com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:145)
at
com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:129)
at com.sun.proxy.$Proxy372.storeToURL(Unknown Source)
at xxx.xxx.ConvertHtmlToPDF.convert(Unknown Source)
at xxx.xxx.DocumentConverter.convertHtmlToPdf(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1169.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
weblogic.wsee.component.pojo.JavaClassComponent.invoke(JavaClassComponent.java:117)
at
weblogic.wsee.ws.dispatch.server.ComponentHandler.handleRequest(ComponentHandler.java:83)
at
weblogic.wsee.handler.HandlerIterator.handleRequest(HandlerIterator.java:142)
at
weblogic.wsee.ws.dispatch.server.ServerDispatcher.dispatch(ServerDispatcher.java:115)
at weblogic.wsee.ws.WsSkel.invoke(WsSkel.java:80)
at
weblogic.wsee.server.servlet.SoapProcessor.handlePost(SoapProcessor.java:66)
at
weblogic.wsee.server.servlet.SoapProcessor.process(SoapProcessor.java:44)
at
weblogic.wsee.server.servlet.BaseWSServlet$AuthorizedInvoke.run(BaseWSServlet.java:301)
at
weblogic.wsee.server.servlet.BaseWSServlet.service(BaseWSServlet.java:177)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)
at
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)
at
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)
at
weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)
at
weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:247)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3697)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3667)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
at
weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)
at
weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
at
weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
at
weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2443)
at
weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2291)
at
weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2269)
at
weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1705)
at
weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1665)
at
weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:272)
at
weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)
at
weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)
at
weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)
at
weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
at
weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:652)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:420)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:360)
Caused by: java.io.IOException: EOF reached -
socket,host=localhost,port=8100,localHost=localhost,localPort=47443,peerHost=localhost,peerPort=8100
at
com.sun.star.lib.uno.bridges.java_remote.XConnectionInputStream_Adapter.read(XConnectionInputStream_Adapter.java:50)
at java.io.DataInputStream.readInt(DataInputStream.java:387)
at com.sun.star.lib.uno.protocols.urp.urp.readBlock(urp.java:364)
at com.sun.star.lib.uno.protocols.urp.urp.readMessage(urp.java:96)
at
com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge$MessageDispatcher.run(java_remote_bridge.java:92)
Caused by: com.sun.star.io.IOException: EOF reached -
socket,host=localhost,port=8100,localHost=localhost,localPort=47443,peerHost=localhost,peerPort=8100
at
com.sun.star.lib.connections.socket.SocketConnection.read(SocketConnection.java:155)
at
com.sun.star.lib.uno.bridges.java_remote.XConnectionInputStream_Adapter.read(XConnectionInputStream_Adapter.java:48)
Steps to Reproduce:
I will attach a sample application which can reproduce this issue.
1. Unzip the file and cd into the StressDocumentConversionTest directory.
2. start LibreOffice in headless mode:
soffice --nofirststartwizard --headless --nologo
--accept="socket,host=localhost,port=8199,tcpNoDelay=1;urp;"
3. execute the "runTest.sh" script. The Java application will print out a
single '.' for each conversion. It will report an exception when the issue
above is encountered.
4. After execution, clean up the results of the many conversions executed by
executing "rm -r results"
Actual Results:
The DocumentConversionTest application will terminate with an exception after
many executions. In my case, it takes around 1700.
com.sun.star.lang.DisposedException
at
com.sun.star.lib.uno.environments.remote.JobQueue.removeJob(JobQueue.java:201)
at
com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:308)
at
com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:281)
at
com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:81)
at
com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:618)
at
com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:145)
at
com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:129)
at com.sun.proxy.$Proxy5.storeToURL(Unknown Source)
at
DocumentConversionTest.performConversion(DocumentConversionTest.java:123)
at DocumentConversionTest.main(DocumentConversionTest.java:71)
Caused by: java.io.IOException: EOF reached -
socket,host=localhost,port=8199,localHost=localhost,localPort=54295,peerHost=localhost,peerPort=8199
at
com.sun.star.lib.uno.bridges.java_remote.XConnectionInputStream_Adapter.read(XConnectionInputStream_Adapter.java:50)
at java.io.DataInputStream.readInt(DataInputStream.java:387)
at com.sun.star.lib.uno.protocols.urp.urp.readBlock(urp.java:364)
at com.sun.star.lib.uno.protocols.urp.urp.readMessage(urp.java:96)
at
com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge$MessageDispatcher.run(java_remote_bridge.java:92)
Caused by: com.sun.star.io.IOException: EOF reached -
socket,host=localhost,port=8199,localHost=localhost,localPort=54295,peerHost=localhost,peerPort=8199
at
com.sun.star.lib.connections.socket.SocketConnection.read(SocketConnection.java:155)
at
com.sun.star.lib.uno.bridges.java_remote.XConnectionInputStream_Adapter.read(XConnectionInputStream_Adapter.java:48)
... 4 more
.DocumentConversionTest terminated with 1740 documents converted
Expected Results:
LibreOffice should continue accepting connections and converting documents.
Reproducible: Sometimes
User Profile Reset: No
OpenGL enabled: Yes
Additional Info:
The Linux LibreOffice version is as follows:
Build ID: 65905a128db06ba48db947242809d14d3f9a93fe
CPU threads: 24; OS: Linux 3.10; UI render: default; VCL: gtk2;
Locale: en-US (en_US.UTF-8); Calc: group threaded
The OpenGL information is as follows:
glxinfo | grep OpenGL
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 6.0, 128 bits)
OpenGL version string: 2.1 Mesa 18.0.5
OpenGL shading language version string: 1.30
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 18.0.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
OpenGL ES profile extensions:
It is also possible to run this test on Windows, though it will fail with a
different exception. Using the same version of LibreOffice on Windows 7, I
receive the following exception after around 1300 conversions:
com.sun.star.io.IOException: SfxBaseModel::impl_store
<file:/C:/projects/StressDocumentConversionTest/results/01236/resu
ltDocument.pdf> failed: 0xc10(Error Area:Io Class:Write Code:16)
at
com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:158)
at com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:122)
at
com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:312)
at
com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:281)
at
com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:81)
at
com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:618)
at
com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:145)
at
com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:129)
at com.sun.proxy.$Proxy5.storeToURL(Unknown Source)
at
DocumentConversionTest.performConversion(DocumentConversionTest.java:122)
at DocumentConversionTest.main(DocumentConversionTest.java:71)
The Windows version information is as follows:
Version: 6.1.2.1 (x64)
Build ID: 65905a128db06ba48db947242809d14d3f9a93fe
CPU threads: 8; OS: Windows 6.1; UI render: default;
Locale: en-US (en_US); Calc: CL
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice-bugs/attachments/20190417/96efb797/attachment-0001.html>
More information about the Libreoffice-bugs
mailing list