[Paraview] ParaviewWeb4 Jetty Session manager - Out of memory error

Sebastien Jourdain sebastien.jourdain at kitware.com
Thu Nov 21 15:58:00 EST 2013


The issue is related to the web socket proxy section which was there to
show the feasibility not the robustness.
For that you rather use apache 2.4+.


On Thu, Nov 21, 2013 at 9:52 AM, Bogdan Daqui Herrera <bdaqui at simscale.de>wrote:

> Hello all,
>
> Thanks for the useful answers to my previous questions.
>
> I am encountering a problem with the Jetty Session Manager and the fact
> that the java process runs out of memory, under what could be a memory
> leak.
>
> 1. Description:
> * The Problem: The (java) Jetty session manager runs out of memory after
> establishing multiple sessions either sequentially or simultaneously.
> For example the error could manifest itself after 30 paraview sessions
> being started and terminated. The stacktrace appended at the end of the
> e-mail:
>
> * Repeatability: always. It happens much sooner on jvms on 32-bit
> machines than on 64-bit ones.
>
> * My changes to the Session Manager: In
>
> SessionManager/src/main/java/com/kitware/paraviewweb/external/SimpleWebSocketProxyManager.java:
>
> DEFAULT_MAX_MESSAGE_SIZE -> From 2 to 4 MB (Increased the websocket
> message size)
> DEFAULT_FACTORY_BUFFER_SIZE -> From 1 to 2 MB
>
> * session manager started with:
> java -jar SessionManager.jar default-config.properties
>
> Using the -Xms and -Xmx options to increase allocated memory when
> launching the process only delays the final error for a little longer,
> as sooner or later it shows up.
>
> 2. Questions
> -Do you perhaps know how this issue could be addressed, or any advice on
> how to mitigate it and where to look for a possible memory leak?
>
> -From your experience with the current implementation of the Session
> Manager, what would be the current practical limit on the number of
> concurrent (I have specified a maximum of 80 in the config file) and
> sequential sessions?
>
> 3. Error Stacktrace
> java.lang.OutOfMemoryError: Java heap space
>         at
> org.eclipse.jetty.io.ByteArrayBuffer.<init>(ByteArrayBuffer.java:38)
>         at
>
> org.eclipse.jetty.io.nio.IndirectNIOBuffer.<init>(IndirectNIOBuffer.java:32)
>         at
> org.eclipse.jetty.io.AbstractBuffers.newBuffer(AbstractBuffers.java:94)
>         at
>
> org.eclipse.jetty.io.ThreadLocalBuffers.getBuffer(ThreadLocalBuffers.java:64)
>         at
>
> org.eclipse.jetty.websocket.WebSocketBuffers.getBuffer(WebSocketBuffers.java:48)
>         at
>
> org.eclipse.jetty.websocket.WebSocketParserRFC6455.parseNext(WebSocketParserRFC6455.java:132)
>         at
>
> org.eclipse.jetty.websocket.WebSocketConnectionRFC6455.handle(WebSocketConnectionRFC6455.java:225)
>         at
>
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
>         at
>
> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
>         at
>
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>         at
>
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>         at java.lang.Thread.run(Thread.java:679)
> 2013-11-21 14:58:15.030:WARN:oeji.nio:
> java.lang.OutOfMemoryError: Java heap space
>         at
> org.eclipse.jetty.io.ByteArrayBuffer.<init>(ByteArrayBuffer.java:38)
>         at
>
> org.eclipse.jetty.io.nio.IndirectNIOBuffer.<init>(IndirectNIOBuffer.java:32)
>         at
> org.eclipse.jetty.io.AbstractBuffers.newBuffer(AbstractBuffers.java:94)
>         at
>
> org.eclipse.jetty.io.ThreadLocalBuffers.getBuffer(ThreadLocalBuffers.java:64)
>         at
>
> org.eclipse.jetty.websocket.WebSocketBuffers.getBuffer(WebSocketBuffers.java:48)
>         at
>
> org.eclipse.jetty.websocket.WebSocketGeneratorRFC6455.addFrame(WebSocketGeneratorRFC6455.java:77)
>         at
>
> org.eclipse.jetty.websocket.WebSocketConnectionRFC6455.closeOut(WebSocketConnectionRFC6455.java:382)
>         at
>
> org.eclipse.jetty.websocket.WebSocketConnectionRFC6455$WSFrameConnection.close(WebSocketConnectionRFC6455.java:489)
>         at
>
> com.kitware.paraviewweb.websocket.WebSocketForwarder.onClose(WebSocketForwarder.java:64)
>         at
>
> org.eclipse.jetty.websocket.WebSocketConnectionRFC6455.closeOut(WebSocketConnectionRFC6455.java:358)
>         at
>
> org.eclipse.jetty.websocket.WebSocketConnectionRFC6455$WSFrameConnection.close(WebSocketConnectionRFC6455.java:489)
>         at
>
> com.kitware.paraviewweb.websocket.WebSocketForwarder.onClose(WebSocketForwarder.java:64)
>         at
>
> org.eclipse.jetty.websocket.WebSocketConnectionRFC6455.onClose(WebSocketConnectionRFC6455.java:302)
>         at
>
> org.eclipse.jetty.websocket.WebSocketClientFactory$WebSocketClientConnection.onClose(WebSocketClientFactory.java:570)
>         at
>
> org.eclipse.jetty.websocket.WebSocketClientFactory$WebSocketClientSelector.endPointClosed(WebSocketClientFactory.java:330)
>         at
>
> org.eclipse.jetty.io.nio.SelectorManager$SelectSet.destroyEndPoint(SelectorManager.java:853)
>         at
>
> org.eclipse.jetty.io.nio.SelectChannelEndPoint.doUpdateKey(SelectChannelEndPoint.java:607)
>         at
>
> org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:468)
>         at
> org.eclipse.jetty.io.nio.SelectorManager$1.run(SelectorManager.java:290)
>         at
>
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>         at
>
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>         at java.lang.Thread.run(Thread.java:679)
>
>
>
> Thanks in advance for your replies.
>
> Kind regards,
> Bogdan Daqui
>
> --
> Bogdan Daqui
> Software Development
>
> SimScale GmbH
> Lichtenbergstraße 8
> 85748 Garching bei München
>
> Phone: +49 (0)89 3398 4078
> Email: bdaqui at simscale.de
>
> Amtsgericht München, HRB 201813
> Geschäftsführer: Vincenz Dölle & David Heiny
>
> http://www.simscale.der
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at:
> http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20131121/a0df3996/attachment.htm>


More information about the ParaView mailing list