[ 
https://issues.apache.org/jira/browse/JENA-515?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Allen closed JENA-515.
------------------------------

    Resolution: Not A Problem
      Assignee: Stephen Allen

All bets are pretty much off after an OOME in Java.  Especially in your case, 
you can see in the stacktrace that the JVM ran out of memory in the 
HTTPAction.endWrite() method, which means that the transaction couldn't even be 
closed properly.

The only thing you can realistically do during an OOME in Java is to exit the 
JVM.  This is not C or C++ where we have control over memory allocation, and 
could potentially recover.

Ultimately you are running out of heap somehow.  Either you are adding too much 
data in a single transaction, or something else is going on.
                
> Incorrectly error message "Currently in a transaction" when querying SPARQL
> ---------------------------------------------------------------------------
>
>                 Key: JENA-515
>                 URL: https://issues.apache.org/jira/browse/JENA-515
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: Fuseki, TDB
>    Affects Versions: TDB 0.10.1
>            Reporter: Knut-Olav Hoven
>            Assignee: Stephen Allen
>
> This has happened after a OutOfMemoryError during import (batched import of 
> 1000 resources per request).
> Fetching entire database with curl works OK:
>  http://localhost:3030/ds/data?graph=sift-tprogram
> When querying with SPARQL I get an 500 error "Currently in a transaction".
> No other clients are active.
> Log output:
> {code}
> 15:27:01 INFO  Fuseki               :: [73] GET 
> http://localhost:3030/ds/query?query=PREFIX+sift%3A+%3Chttp%3A%2F%2Fgluon.nrk.no%2F2013%2Fsift%23%3E%0D%0APREFIX+prog%3A+%3Chttp%3A%2F%2Fgluon.nrk.no%2F2013%2Fsift-program%23%3E%0D%0A%0D%0ASELECT+*%0D%0AFROM+%3Chttp%3A%2F%2Flocalhost%3A3030%2Fds%2Fdata%2Fsift-tprogram%3E%0D%0A%7B%0D%0A%3Fs+sift%3Akeys+%222005%2F02952%22+.%0D%0A%3Fs+%3Fp+%3Fo%0D%0A%7D%0D%0ALIMIT+1000&output=text&stylesheet=%2Fxml-to-html.xsl&force-accept=text%2Fplain
> 15:27:01 INFO  Fuseki               :: [73] Query = PREFIX sift: 
> <http://gluon.nrk.no/2013/sift#>  PREFIX prog: 
> <http://gluon.nrk.no/2013/sift-program#>    SELECT *  FROM 
> <http://localhost:3030/ds/data/sift-tprogram>  {  ?s sift:keys "2005/02952" . 
>  ?s ?p ?o  }  LIMIT 1000
> 15:27:02 WARN  Fuseki               :: [73] RC = 500 : Currently in a 
> transaction (location:/home/n21759/var/jena-fuseki/db/)
> com.hp.hpl.jena.sparql.JenaTransactionException: Currently in a transaction 
> (location:/home/n21759/var/jena-fuseki/db/)
>         at 
> com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction.checkNotActive(DatasetGraphTransaction.java:125)
>         at 
> com.hp.hpl.jena.sparql.core.DatasetGraphTrackActive.begin(DatasetGraphTrackActive.java:44)
>         at 
> org.apache.jena.fuseki.servlets.HttpAction.beginRead(HttpAction.java:118)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:234)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_Query.executeWithParameter(SPARQL_Query.java:193)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:78)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeLifecycle(SPARQL_ServletBase.java:185)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeAction(SPARQL_ServletBase.java:166)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.execCommonWorker(SPARQL_ServletBase.java:154)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.doCommon(SPARQL_ServletBase.java:73)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_Query.doGet(SPARQL_Query.java:59)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>         at 
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
>         at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)
>         at 
> org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:82)
>         at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:294)
>         at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
>         at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
>         at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
>         at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
>         at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
>         at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
>         at org.eclipse.jetty.server.Server.handle(Server.java:370)
>         at 
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
>         at 
> org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
>         at 
> org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)
>         at 
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
>         at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
>         at 
> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
>         at 
> org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
>         at 
> org.eclipse.jetty.server.nio.BlockingChannelConnector$BlockingChannelEndPoint.run(BlockingChannelConnector.java:298)
>         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:722)
> 15:27:02 INFO  Fuseki               :: [73] 500 Currently in a transaction 
> (location:/home/n21759/var/jena-fuseki/db/) (601 ms) 
> {code}
> Log message of the OutOfMemoryError:
> {code}
> java.lang.OutOfMemoryError: Java heap space
> Dumping heap to java_pid28296.hprof ...
> Heap dump file created [280365745 bytes in 2.986 secs]
> 15:10:27 WARN  HttpAction           :: Transaction still active in endWriter 
> - no commit or abort seen (forced abort)
> 15:10:28 WARN  HttpAction           :: Exception in forced abort (trying to 
> continue)
> 15:10:40 WARN  Fuseki               :: [66] RC = 500 : Java heap space
> java.lang.OutOfMemoryError: Java heap space
>         at java.util.Arrays.copyOf(Arrays.java:2367)
>         at 
> java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
>         at 
> java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
>         at 
> java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
>         at java.lang.StringBuffer.append(StringBuffer.java:237)
>         at java.io.StringWriter.write(StringWriter.java:112)
>         at java.io.PrintWriter.write(PrintWriter.java:456)
>         at java.io.PrintWriter.write(PrintWriter.java:473)
>         at java.io.PrintWriter.print(PrintWriter.java:603)
>         at java.io.PrintWriter.println(PrintWriter.java:756)
>         at java.lang.Throwable$WrappedPrintWriter.println(Throwable.java:763)
>         at java.lang.Throwable.printStackTrace(Throwable.java:657)
>         at java.lang.Throwable.printStackTrace(Throwable.java:720)
>         at 
> org.apache.log4j.DefaultThrowableRenderer.render(DefaultThrowableRenderer.java:60)
>         at 
> org.apache.log4j.spi.ThrowableInformation.getThrowableStrRep(ThrowableInformation.java:87)
>         at 
> org.apache.log4j.spi.LoggingEvent.getThrowableStrRep(LoggingEvent.java:413)
>         at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:313)
>         at org.apache.log4j.WriterAppender.append(WriterAppender.java:162)
>         at 
> org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
>         at 
> org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
>         at org.apache.log4j.Category.callAppenders(Category.java:206)
>         at org.apache.log4j.Category.forcedLog(Category.java:391)
>         at org.apache.log4j.Category.log(Category.java:856)
>         at org.slf4j.impl.Log4jLoggerAdapter.warn(Log4jLoggerAdapter.java:479)
>         at org.apache.jena.atlas.logging.Log.warn(Log.java:160)
>         at org.apache.jena.atlas.logging.Log.warn(Log.java:155)
>         at 
> org.apache.jena.fuseki.servlets.HttpAction.endWrite(HttpAction.java:156)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_REST_RW.doPost(SPARQL_REST_RW.java:97)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_REST.doPost$(SPARQL_REST.java:246)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_REST.dispatch(SPARQL_REST.java:203)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_REST.perform(SPARQL_REST.java:190)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeLifecycle(SPARQL_ServletBase.java:185)
> 15:10:41 INFO  Fuseki               :: [66] 500 Java heap space (73.238 s) 
> 15:10:41 INFO  Fuseki               :: [67] POST 
> http://localhost:3030/ds/data?graph=sift-tprogram
> 15:11:06 WARN  Fuseki               :: [67] RC = 500 : Java heap space
> java.lang.OutOfMemoryError: Java heap space
>         at java.util.Arrays.copyOfRange(Arrays.java:2694)
>         at java.lang.String.<init>(String.java:203)
>         at java.lang.StringBuilder.toString(StringBuilder.java:405)
>         at 
> org.apache.jena.riot.tokens.TokenizerText.readIRI(TokenizerText.java:477)
>         at 
> org.apache.jena.riot.tokens.TokenizerText.parseToken(TokenizerText.java:192)
>         at 
> org.apache.jena.riot.tokens.TokenizerText.hasNext(TokenizerText.java:89)
>         at 
> org.apache.jena.atlas.iterator.PeekIterator.fill(PeekIterator.java:50)
>         at 
> org.apache.jena.atlas.iterator.PeekIterator.next(PeekIterator.java:92)
>         at org.apache.jena.riot.lang.LangEngine.nextToken(LangEngine.java:99)
>         at org.apache.jena.riot.lang.LangEngine.expect(LangEngine.java:143)
>         at 
> org.apache.jena.riot.lang.LangEngine.expectOrEOF(LangEngine.java:128)
>         at 
> org.apache.jena.riot.lang.LangTurtleBase.expectEndOfTriplesTurtle(LangTurtleBase.java:258)
>         at 
> org.apache.jena.riot.lang.LangTurtle.expectEndOfTriples(LangTurtle.java:49)
>         at 
> org.apache.jena.riot.lang.LangTurtleBase.triples(LangTurtleBase.java:243)
>         at 
> org.apache.jena.riot.lang.LangTurtleBase.triplesSameSubject(LangTurtleBase.java:186)
>         at 
> org.apache.jena.riot.lang.LangTurtle.oneTopLevelElement(LangTurtle.java:44)
>         at 
> org.apache.jena.riot.lang.LangTurtleBase.runParser(LangTurtleBase.java:90)
>         at org.apache.jena.riot.lang.LangBase.parse(LangBase.java:42)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_REST.parse(SPARQL_REST.java:417)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_REST.parseBody(SPARQL_REST.java:406)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_REST_RW.doPost(SPARQL_REST_RW.java:87)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_REST.doPost$(SPARQL_REST.java:246)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_REST.dispatch(SPARQL_REST.java:203)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_REST.perform(SPARQL_REST.java:190)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeLifecycle(SPARQL_ServletBase.java:185)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.executeAction(SPARQL_ServletBase.java:166)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.execCommonWorker(SPARQL_ServletBase.java:154)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_ServletBase.doCommon(SPARQL_ServletBase.java:73)
>         at 
> org.apache.jena.fuseki.servlets.SPARQL_REST.service(SPARQL_REST.java:180)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>         at 
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
>         at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)
> 15:11:06 INFO  Fuseki               :: [67] 500 Java heap space (25.723 s) 
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to