Uploaded image for project: 'Fedora Repository Project'
  1. Fedora Repository Project
  2. FCREPO-1854

exception when trying to delete containers with a large number of children

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: Fedora 4.4.0
    • Fix Version/s: None
    • Component/s: f4-core
    • Labels:
      None
    • Environment:
      Physical server, 8Gb RAM, 16 processors
      RHEL6, OpenJDK 1.8.0.45, Tomcat 7.0.54
      4Gb max JVM heap space
      Fedora 4.4.0 and 4.4.1-snapshot

      Description

      When sending an HTTP DELETE request on a container with a large number of children, the application throws an exception.

      The number of children of the container where this happens cannot be easily calculated at the moment; it goes between tens of thousands to over 100k.

      Command line to reproduce the error:

      $ time curl -X DELETE http://localhost:8080/fcrepo/rest/prod
      javax.jcr.RepositoryException: org.modeshape.common.SystemFailureException: java.lang.IllegalStateException: Transaction TransactionImple < ac, BasicAction: 0:ffffc6281b91:b590:5663c3ad:12 status: ActionStatus.ABORTED > is not in a valid state to be invoking cache operations on.
      at org.modeshape.jcr.JcrSession.save(JcrSession.java:1190)
      at org.fcrepo.http.api.FedoraLdp.deleteObject(FedoraLdp.java:217)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:497)
      at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
      at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151)
      at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171)
      at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152)
      at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104)
      at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:384)
      at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:342)
      at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:101)
      at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:271)
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
      at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
      at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
      at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297)
      at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:254)
      at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1030)
      at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:373)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:381)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:344)
      at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:203)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      at java.lang.Thread.run(Thread.java:745)
      Caused by: org.modeshape.common.SystemFailureException: java.lang.IllegalStateException: Transaction TransactionImple < ac, BasicAction: 0:ffffc6281b91:b590:5663c3ad:12 status: ActionStatus.ABORTED > is not in a valid state to be invoking cache operations on.
      at org.modeshape.jcr.cache.document.WritableSessionCache.save(WritableSessionCache.java:664)
      at org.modeshape.jcr.JcrSession.save(JcrSession.java:1171)
      ... 43 more
      Caused by: java.lang.IllegalStateException: Transaction TransactionImple < ac, BasicAction: 0:ffffc6281b91:b590:5663c3ad:12 status: ActionStatus.ABORTED > is not in a valid state to be invoking cache operations on.
      at org.infinispan.interceptors.TxInterceptor.enlist(TxInterceptor.java:389)
      at org.infinispan.interceptors.TxInterceptor.enlistIfNeeded(TxInterceptor.java:351)
      at org.infinispan.interceptors.TxInterceptor.enlistReadAndInvokeNext(TxInterceptor.java:345)
      at org.infinispan.interceptors.TxInterceptor.visitGetKeyValueCommand(TxInterceptor.java:318)
      at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
      at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
      at org.infinispan.interceptors.CacheMgmtInterceptor.visitDataReadCommand(CacheMgmtInterceptor.java:103)
      at org.infinispan.interceptors.CacheMgmtInterceptor.visitGetKeyValueCommand(CacheMgmtInterceptor.java:91)
      at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
      at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
      at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:102)
      at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:71)
      at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:86)
      at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
      at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:336)
      at org.infinispan.cache.impl.CacheImpl.get(CacheImpl.java:430)
      at org.infinispan.cache.impl.CacheImpl.get(CacheImpl.java:422)
      at org.infinispan.schematic.internal.CacheSchematicDb.get(CacheSchematicDb.java:77)
      at org.modeshape.jcr.cache.document.LocalDocumentStore.get(LocalDocumentStore.java:71)
      at org.modeshape.jcr.cache.document.WorkspaceCache.documentFor(WorkspaceCache.java:188)
      at org.modeshape.jcr.cache.document.WorkspaceCache.documentFor(WorkspaceCache.java:207)
      at org.modeshape.jcr.cache.document.WorkspaceCache.persistedCache(WorkspaceCache.java:414)
      at org.modeshape.jcr.cache.document.WritableSessionCache.lockNodes(WritableSessionCache.java:1503)
      at org.modeshape.jcr.cache.document.WritableSessionCache.save(WritableSessionCache.java:626)
      ... 44 more

      real 2m51.756s
      user 0m0.022s
      sys 0m0.013s

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                scossu Stefano Cossu
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: