On 11/12/17 09:38, George News wrote:
Hi,
I'm facing the exception that I include below. I guess this is because I'm not
properly opening a transaction or so.
Yes - and also not using the datasets MRSW lock (multiple reader /
single writer).
Concurrent access must be controlled by a transaction or the datasets
lock. Ideally, transactions.
Let's try to explain a bit to guess if this is the problem:
- I have multiple graphs which I merge using MultiUnion
- I generate the MultiUnion in one transaction, but the use of the joined graph
is done in another transaction.
Is the MultiUnion over graphs in the same dataset?
- I use a single static final Dataset from
TDBFactory.createDataset(TRIPLE_STORE_PATH);
- Read and write operations are done in different threads, so maybe we have
started a join for read and in parallel we are writing on one of the graphs
included in the union.
Any hint is welcome.
Regards,
Jorge
Andy
org.apache.jena.tdb.base.file.FileException: In the middle of an alloc-write
at
org.apache.jena.tdb.base.objectfile.ObjectFileStorage.read(ObjectFileStorage.java:311)
~[jena-tdb-3.5.0.jar:3.5.0]
at
org.apache.jena.tdb.base.objectfile.ObjectFileWrapper.read(ObjectFileWrapper.java:57)
~[jena-tdb-3.5.0.jar:3.5.0]
at org.apache.jena.tdb.lib.NodeLib.fetchDecode(NodeLib.java:78)
~[jena-tdb-3.5.0.jar:3.5.0]
at
org.apache.jena.tdb.store.nodetable.NodeTableNative.readNodeFromTable(NodeTableNative.java:186)
~[jena-tdb-3.5.0.jar:3.5.0]
at
org.apache.jena.tdb.store.nodetable.NodeTableNative._retrieveNodeByNodeId(NodeTableNative.java:111)
~[jena-tdb-3.5.0.jar:3.5.0]
at
org.apache.jena.tdb.store.nodetable.NodeTableNative.getNodeForNodeId(NodeTableNative.java:70)
~[jena-tdb-3.5.0.jar:3.5.0]
at
org.apache.jena.tdb.store.nodetable.NodeTableCache._retrieveNodeByNodeId(NodeTableCache.java:128)
~[jena-tdb-3.5.0.jar:3.5.0]
at
org.apache.jena.tdb.store.nodetable.NodeTableCache.getNodeForNodeId(NodeTableCache.java:82)
~[jena-tdb-3.5.0.jar:3.5.0]
at
org.apache.jena.tdb.store.nodetable.NodeTableWrapper.getNodeForNodeId(NodeTableWrapper.java:50)
~[jena-tdb-3.5.0.jar:3.5.0]
at
org.apache.jena.tdb.store.nodetable.NodeTableInline.getNodeForNodeId(NodeTableInline.java:67)
~[jena-tdb-3.5.0.jar:3.5.0]
at org.apache.jena.tdb.lib.TupleLib.quad(TupleLib.java:129)
~[jena-tdb-3.5.0.jar:3.5.0]
at org.apache.jena.tdb.lib.TupleLib.quad(TupleLib.java:123)
~[jena-tdb-3.5.0.jar:3.5.0]
at
org.apache.jena.tdb.lib.TupleLib.lambda$convertToQuads$3(TupleLib.java:59)
~[jena-tdb-3.5.0.jar:3.5.0]
at org.apache.jena.atlas.iterator.Iter$2.next(Iter.java:270)
~[jena-base-3.5.0.jar:3.5.0]
at org.apache.jena.atlas.iterator.Iter$2.next(Iter.java:270)
~[jena-base-3.5.0.jar:3.5.0]
at org.apache.jena.atlas.iterator.Iter.next(Iter.java:875)
~[jena-base-3.5.0.jar:3.5.0]
at
org.apache.jena.util.iterator.WrappedIterator.next(WrappedIterator.java:94)
~[jena-core-3.5.0.jar:3.5.0]
at
org.apache.jena.util.iterator.WrappedIterator.next(WrappedIterator.java:94)
~[jena-core-3.5.0.jar:3.5.0]
at
org.apache.jena.util.iterator.FilterIterator.hasNext(FilterIterator.java:56)
~[jena-core-3.5.0.jar:3.5.0]
at
org.apache.jena.util.iterator.NiceIterator$1.hasNext(NiceIterator.java:105)
~[jena-core-3.5.0.jar:3.5.0]
at
org.apache.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:90)
~[jena-core-3.5.0.jar:3.5.0]
at
org.apache.jena.graph.compose.CompositionBase$1.hasNext(CompositionBase.java:94)
~[jena-core-3.5.0.jar:3.5.0]
at
org.apache.jena.util.iterator.NiceIterator$1.hasNext(NiceIterator.java:105)
~[jena-core-3.5.0.jar:3.5.0]
at
org.apache.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:90)
~[jena-core-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.hasNextBinding(QueryIterTriplePattern.java:135)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:74)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:101)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:65)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:101)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:65)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterBlockTriples.hasNextBinding(QueryIterBlockTriples.java:63)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:101)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:65)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterPeek.hasNextBinding(QueryIterPeek.java:57)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:101)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:65)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:101)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:65)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterBlockTriples.hasNextBinding(QueryIterBlockTriples.java:63)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterGroup$1.initializeIterator(QueryIterGroup.java:93)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.atlas.iterator.IteratorDelayedInitialization.init(IteratorDelayedInitialization.java:40)
~[jena-base-3.5.0.jar:3.5.0]
at
org.apache.jena.atlas.iterator.IteratorDelayedInitialization.hasNext(IteratorDelayedInitialization.java:50)
~[jena-base-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterPlainWrapper.hasNextBinding(QueryIterPlainWrapper.java:53)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterProcessBinding.hasNextBinding(QueryIterProcessBinding.java:66)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at java.util.Iterator.forEachRemaining(Iterator.java:115)
~[?:1.8.0_121]
at org.apache.jena.atlas.data.DataBag.addAll(DataBag.java:94)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterSort$SortedBindingIterator.initializeIterator(QueryIterSort.java:87)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.atlas.iterator.IteratorDelayedInitialization.init(IteratorDelayedInitialization.java:40)
~[jena-base-3.5.0.jar:3.5.0]
at
org.apache.jena.atlas.iterator.IteratorDelayedInitialization.hasNext(IteratorDelayedInitialization.java:50)
~[jena-base-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterPlainWrapper.hasNextBinding(QueryIterPlainWrapper.java:53)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIterConvert.hasNextBinding(QueryIterConvert.java:58)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:74)
~[jena-arq-3.5.0.jar:3.5.0]
at
org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext(ResultSetCheckCondition.java:55)
~[jena-arq-3.5.0.jar:3.5.0]
at
com.myproject.rest.StatisticsRestService.getDataBy(StatisticsRestService.java:205)
~[classes:?]
at
com.myproject.rest.StatisticsRestService.getData(StatisticsRestService.java:178)
~[classes:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[?:1.8.0_121]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[?:1.8.0_121]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_121]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
at
org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:38)
~[weld-core-impl-2.3.2.Final.jar!/:2.3.2.Final]
at
org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:100)
~[weld-core-impl-2.3.2.Final.jar!/:2.3.2.Final]
at
com.myproject.rest.StatisticsRestService$Proxy$_$$_WeldClientProxy.getData(Unknown
Source) ~[classes:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[?:1.8.0_121]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[?:1.8.0_121]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_121]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
at
org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
~[resteasy-jaxrs-3.0.14.Final.jar!/:3.0.14.Final]
at
org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
~[resteasy-jaxrs-3.0.14.Final.jar!/:3.0.14.Final]
at
org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
~[resteasy-jaxrs-3.0.14.Final.jar!/:3.0.14.Final]
at
org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)
~[resteasy-jaxrs-3.0.14.Final.jar!/:3.0.14.Final]
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:395)
[resteasy-jaxrs-3.0.14.Final.jar!/:3.0.14.Final]
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:202)
[resteasy-jaxrs-3.0.14.Final.jar!/:3.0.14.Final]
at
org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
[resteasy-jaxrs-3.0.14.Final.jar!/:3.0.14.Final]
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
[resteasy-jaxrs-3.0.14.Final.jar!/:3.0.14.Final]
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
[resteasy-jaxrs-3.0.14.Final.jar!/:3.0.14.Final]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
[jboss-servlet-api_3.1_spec-1.0.0.Final.jar!/:1.0.0.Final]
at
io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
[log4j-web-2.5.jar:2.5]
at
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
[wildfly-undertow-10.0.0.Final.jar!/:10.0.0.Final]
at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
[undertow-core-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
[undertow-core-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
[undertow-core-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
[undertow-core-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.3.15.Final.jar!/:1.3.15.Final]
at
org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
[wildfly-undertow-10.0.0.Final.jar!/:10.0.0.Final]
at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:284)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174)
[undertow-servlet-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
[undertow-core-1.3.15.Final.jar!/:1.3.15.Final]
at
io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793)
[undertow-core-1.3.15.Final.jar!/:1.3.15.Final]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[?:1.8.0_121]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[?:1.8.0_121]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]