You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (JIRA)" <ji...@apache.org> on 2019/02/09 16:00:00 UTC

[jira] [Created] (JENA-1667) Union graph does not fully handle read-transactions.

Andy Seaborne created JENA-1667:
-----------------------------------

             Summary: Union graph does not fully handle read-transactions.
                 Key: JENA-1667
                 URL: https://issues.apache.org/jira/browse/JENA-1667
             Project: Apache Jena
          Issue Type: Bug
    Affects Versions: Jena 3.10.0
            Reporter: Andy Seaborne
            Assignee: Andy Seaborne


See discussion on JENA-1663.
{noformat}
:service_union_all  a                 fuseki:Service ;
        rdfs:label                    "Union of all caches" ;
        fuseki:dataset                :ds_union_all ;
        fuseki:name                   "union_all" ;
        fuseki:serviceQuery           "query" , "sparql" ;
        # READ ONLY, no Update/Upload-enpoints
        fuseki:serviceReadGraphStore  "get" .

:union_all_model rdf:type ja:UnionModel ;
    ja:subModel :g1 ;
    ja:subModel :g2 ; 
    ja:subModel :g3 ;
    ja:subModel :g4 .

:ds_union_all a ja:RDFDataset ;
    ja:defaultGraph :union_all_model .


:ds1_tdb2 a  tdb2:DatasetTDB2 ;
  tdb2:location  "tdb2_1" .

:g1 a tdb2:GraphTDB2 ;
  tdb2:dataset :ds1_tdb2 .

:ds2_tdb2 a tdb2:DatasetTDB2 ;
    tdb2:location  "tdb2_2" .

:g2 a tdb2:GraphTDB2 ;
    tdb2:dataset :ds2_tdb2 .

:ds3_tdb a tdb:DatasetTDB ;
    tdb:location  "tdb_3" .
        
:g3 a tdb:GraphTDB ;
    tdb:dataset :ds3_tdb .

:ds4_tdb2 a tdb2:DatasetTDB2 ;
    tdb2:location  "tdb2_4" .
        
:g4 a tdb2:GraphTDB2 ;
    tdb2:dataset :ds4_tdb2 .
{noformat}
that is, graph from different TDB2 datasets, causes:
{noformat}
[2019-02-06 15:53:18] Fuseki WARN [12] RC = 500 : Not in a transaction
 org.apache.jena.dboe.transaction.txn.TransactionException: Not in a transaction
 at org.apache.jena.dboe.transaction.txn.TransactionalComponentLifecycle.checkTxn(TransactionalComponentLifecycle.java:417)
 at org.apache.jena.dboe.trans.bplustree.BPlusTree.getRootRead(BPlusTree.java:159)
 at org.apache.jena.dboe.trans.bplustree.BPlusTree.iterator(BPlusTree.java:348)
 at org.apache.jena.tdb2.store.tupletable.TupleIndexRecord.all(TupleIndexRecord.java:251)
 at org.apache.jena.tdb2.store.tupletable.TupleTable.find(TupleTable.java:148)
 at org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.find(NodeTupleTableConcrete.java:161)
 at org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.find(NodeTupleTableConcrete.java:150)
 at org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.findAsNodeIds(NodeTupleTableConcrete.java:141)
 at org.apache.jena.tdb2.store.TripleTable.find(TripleTable.java:64)
 at org.apache.jena.tdb2.store.DatasetGraphTDB.findInDftGraph(DatasetGraphTDB.java:104)
 at org.apache.jena.sparql.core.DatasetGraphBaseFind.find(DatasetGraphBaseFind.java:47)
 at org.apache.jena.sparql.core.DatasetGraphWrapper.find(DatasetGraphWrapper.java:167)
 at org.apache.jena.sparql.core.GraphView.graphBaseFind(GraphView.java:124)
 at org.apache.jena.sparql.core.GraphView.graphBaseFind(GraphView.java:116)
 at org.apache.jena.graph.impl.GraphBase.find(GraphBase.java:241)
 at org.apache.jena.graph.compose.MultiUnion.multiGraphFind(MultiUnion.java:170)
 at org.apache.jena.graph.compose.MultiUnion.graphBaseFind(MultiUnion.java:147)
 at org.apache.jena.graph.impl.GraphBase.find(GraphBase.java:241)
 at org.apache.jena.graph.impl.GraphBase.graphBaseFind(GraphBase.java:258)
 at org.apache.jena.graph.impl.GraphBase.find(GraphBase.java:255)
 at org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.<init>(QueryIterTriplePattern.java:75)
 at org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern.nextStage(QueryIterTriplePattern.java:49)
 at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:108)
 at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:65)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
 at org.apache.jena.sparql.engine.iterator.QueryIterBlockTriples.hasNextBinding(QueryIterBlockTriples.java:63)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
 at org.apache.jena.sparql.engine.iterator.QueryIterConvert.hasNextBinding(QueryIterConvert.java:58)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
 at org.apache.jena.sparql.engine.iterator.QueryIterSlice.hasNextBinding(QueryIterSlice.java:76)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
 at org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:74)
 at org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext(ResultSetCheckCondition.java:55)
 at org.apache.jena.fuseki.servlets.SPARQL_Query.executeQuery(SPARQL_Query.java:350)
 at org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:288)
 at org.apache.jena.fuseki.servlets.SPARQL_Query.executeWithParameter(SPARQL_Query.java:242)
 at org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:227)
{noformat}




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)