jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <m...@jutzig.de>
Subject Re: Out Of Memory Error while indexing
Date Tue, 09 Feb 2010 09:14:19 GMT

Hi Thomas,

thank you for your fast reply. Please see comments below.

On Tue, 9 Feb 2010 08:57:06 +0100, Thomas Müller <thomas.mueller@day.com>
wrote:
> Hi,
> 
>> the clients connect with RMI.
> 
> I'm not sure, but that might be the problem.
> 
> To analyze the problem, I suggest to use the command line option
> -XX:+HeapDumpOnOutOfMemoryError and then use a memory analysis tool
> such as the Eclipse Memory Analyzer (MAT): http://www.eclipse.org/mat
> 
> There is an alternative to using RMI:
> http://wiki.apache.org/jackrabbit/RemoteAccess#DavEx
> 

I do know about the DavEx alternative, but the way I'm using the API, the
DavEx implementation has been a lot slower than the RMI implementation (in
the 1.6.0 version of Jackrabbit at least).
Anyway, I did the same with a DavEx connection instead of RMI but the
problem remains. It takes a while to transfer the iso file, memory stays
rather constant on both client and server, then, when the file is complete,
the memory of the Jackrabbit process increases rapidly until it hits an
OutOfMemoryError.
Stacktrace below.

The Memory Analyzer has only one leak suspect:
The thread org.apache.tomcat.util.threads.ThreadWithAttributes @ 0x45dd178
http-8080-Processor24 keeps local variables with total size 134.502.112
(85,57%) bytes.

The memory is accumulated in one instance of "char[]" loaded by "<system
class loader>".Keywords
char[]

Is there any other information I can provide you with?


Best regards,
Johannes

Exception in thread "Timer-1" java.lang.IllegalStateException: this writer
hit an OutOfMemoryError; cannot com
mit
        at
org.apache.lucene.index.IndexWriter.prepareCommit(IndexWriter.java:3353)
        at
org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:3408)
        at
org.apache.jackrabbit.core.query.lucene.AbstractIndex.commit(AbstractIndex.java:363)
        at
org.apache.jackrabbit.core.query.lucene.VolatileIndex.commit(VolatileIndex.java:141)
        at
org.apache.jackrabbit.core.query.lucene.PersistentIndex.copyIndex(PersistentIndex.java:105)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex$VolatileCommit.execute(MultiIndex.java:1984)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.executeAndLog(MultiIndex.java:1000)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.commitVolatileIndex(MultiIndex.java:1048)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.flush(MultiIndex.java:893)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.checkFlush(MultiIndex.java:1164)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.access$100(MultiIndex.java:80)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex$1.run(MultiIndex.java:317)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
09.02.2010 09:37:57 *ERROR* SearchManager: Error indexing node.
(SearchManager.java, line 490)
java.io.IOException: Java heap space
        at
org.apache.jackrabbit.core.query.lucene.Util.createIOException(Util.java:114)
        at
org.apache.jackrabbit.core.query.lucene.AbstractIndex.addDocuments(AbstractIndex.java:199)
        at
org.apache.jackrabbit.core.query.lucene.VolatileIndex.commitPending(VolatileIndex.java:171)
        at
org.apache.jackrabbit.core.query.lucene.VolatileIndex.addDocuments(VolatileIndex.java:82)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex$AddNode.execute(MultiIndex.java:1599)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.executeAndLog(MultiIndex.java:1000)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.update(MultiIndex.java:429)
        at
org.apache.jackrabbit.core.query.lucene.SearchIndex.updateNodes(SearchIndex.java:588)
        at
org.apache.jackrabbit.core.SearchManager.onEvent(SearchManager.java:486)
        at
org.apache.jackrabbit.core.observation.EventConsumer.consumeEvents(EventConsumer.java:244)
        at
org.apache.jackrabbit.core.observation.ObservationDispatcher.dispatchEvents(ObservationDispatcher.j
ava:201)
        at
org.apache.jackrabbit.core.observation.EventStateCollection.dispatch(EventStateCollection.java:464)

        at
org.apache.jackrabbit.core.observation.DelegatingObservationDispatcher.dispatch(DelegatingObservati
onDispatcher.java:127)
        at
org.apache.jackrabbit.core.observation.DelegatingObservationDispatcher.dispatchEvents(DelegatingObs
ervationDispatcher.java:99)
        at
org.apache.jackrabbit.core.observation.EventStateCollection.dispatch(EventStateCollection.java:464)

        at
org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:760)

        at
org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1115)
        at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:351)
        at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:326)
        at
org.apache.jackrabbit.core.version.AbstractVersionManager$WriteOperation.save(AbstractVersionManage
r.java:189)
        at
org.apache.jackrabbit.core.version.AbstractVersionManager.checkin(AbstractVersionManager.java:442)
        at
org.apache.jackrabbit.core.version.VersionManagerImpl$2.run(VersionManagerImpl.java:290)
        at
org.apache.jackrabbit.core.version.VersionManagerImpl$DynamicESCFactory.doSourced(VersionManagerImp
l.java:586)
        at
org.apache.jackrabbit.core.version.VersionManagerImpl.checkin(VersionManagerImpl.java:281)
        at
org.apache.jackrabbit.core.version.XAVersionManager.checkin(XAVersionManager.java:180)
        at org.apache.jackrabbit.core.NodeImpl.checkin(NodeImpl.java:3367)
        at org.apache.jackrabbit.core.NodeImpl.checkin(NodeImpl.java:3346)
        at
org.apache.jackrabbit.webdav.jcr.VersionControlledItemCollection.checkin(VersionControlledItemColle
ction.java:268)
        at
org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.doCheckin(AbstractWebdavServlet.java:997)

        at
org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.execute(AbstractWebdavServlet.java:292)
        at
org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.service(AbstractWebdavServlet.java:196)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
        at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BasePro
tocol.java:665)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
        at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOf(Arrays.java:2882)
        at
java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
        at
java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:515)
        at java.lang.StringBuffer.append(StringBuffer.java:306)
        at
org.apache.jackrabbit.core.query.lucene.LazyTextExtractorField.stringValue(LazyTextExtractorField.j
ava:91)
        at
org.apache.lucene.index.DocInverterPerField.processFields(DocInverterPerField.java:109)
        at
org.apache.lucene.index.DocFieldConsumersPerField.processFields(DocFieldConsumersPerField.java:36)
        at
org.apache.lucene.index.DocFieldProcessorPerThread.processDocument(DocFieldProcessorPerThread.java:
234)
        at
org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:765)
        at
org.apache.lucene.index.DocumentsWriter.addDocument(DocumentsWriter.java:743)
        at
org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1917)
        at
org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1895)
        at
org.apache.jackrabbit.core.query.lucene.AbstractIndex$1.call(AbstractIndex.java:183)
        at
org.apache.jackrabbit.core.query.lucene.DynamicPooledExecutor$1.call(DynamicPooledExecutor.java:109
)
        at EDU.oswego.cs.dl.util.concurrent.FutureResult$1.run(Unknown
Source)
        at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
        ... 1 more


Mime
View raw message