[ https://issues.apache.org/jira/browse/JENA-230?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Seaborne resolved JENA-230. -------------------------------- Resolution: Fixed Fix Version/s: Fuseki 0.2.2 Assignee: Andy Seaborne Please test and report. > Running queries during graph PUT leads to PUT failing > ----------------------------------------------------- > > Key: JENA-230 > URL: https://issues.apache.org/jira/browse/JENA-230 > Project: Apache Jena > Issue Type: Bug > Components: Fuseki > Affects Versions: Fuseki 0.2.1 > Environment: Macosx. > Reporter: Bill Roberts > Assignee: Andy Seaborne > Fix For: Fuseki 0.2.2 > > > 1. create empty dir for TDB and start fuseki with that directory as the > tdb:location > 2. PUT a small file to the graph protocol endpoint > curl -v -H "Content-Type: text/turtle" --upload-file small.ttl > http://localhost:3030/crashtest/data?graph=http://test1 > 3. Run a count of all triples (this step not necessary to reproduce, but just > a baseline check to compare against later stages). > select (count(*) as ?c) where {?s ?p ?o} > Answer in my case is 25 (as expected) > 4. PUT a big file > curl -v -H "Content-Type: text/turtle" --upload-file big.ttl > http://localhost:3030/crashtest/data?graph=http://test2 > (big enough that it takes at least several seconds to load, so you have time > to run some other stuff. My example was about 200,000 triples) > 5. Before it finishes, run the count query another 2 or more times. > It comes back with 25 each time. So far so good. > 6. After the big file load is finished (check for 201 Created in log), run > the count again. > This is where the problem is evident: the count still shows 25, when it > should show 200,000 or so. > (Probably not significant, but my small test file has a few blank nodes in > it. The big file does not). > ls -l of the TDB dir shows lots of data still in nodes.dat-jrnl. The log > includes the line: > "WARN TDB :: Transaction not active: 5" > (full copy of the log below) > Going through the same procedure without running the COUNTs mentioned in > stage 5, then everything goes smoothly. > I'd be interested to hear if anyone else can reproduce this - and of course > to hear what you think might be wrong! > Many thanks > Bill > Details: > OS: Macosx 10.6.8 > fuseki-server --version > ------------------------------ > Jena: VERSION: 2.7.0-incubating > Jena: BUILD_DATE: 2011-12-14T14:54:09+0000 > ARQ: VERSION: 2.9.0-incubating > ARQ: BUILD_DATE: 2011-12-14T15:04:27+0000 > TDB: VERSION: 0.9.0-incubating > TDB: BUILD_DATE: 2012-02-29T19:39:52+0000 > Fuseki: VERSION: 0.2.2-incubating-SNAPSHOT > Fuseki: BUILD_DATE: 20120330-0505 > java -version > ------------------ > java version "1.6.0_29" > Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-10M3527) > Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode) > Config file: > --------------- > @prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> . > @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . > @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . > @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> . > @prefix fuseki: <http://jena.apache.org/fuseki#> . > [] rdf:type fuseki:Server ; > # Services available. Only explicitly listed services are configured. > # If there is a service description not linked from this list, it is > ignored. > fuseki:services ( > <#service1> > ) . > [] ja:loadClass "com.hp.hpl.jena.tdb.TDB" . > tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset . > tdb:GraphTDB rdfs:subClassOf ja:Model . > <#service1> rdf:type fuseki:Service ; > fuseki:name "crashtest" ; # http://host:port/blah > fuseki:serviceQuery "query" ; # SPARQL query service > fuseki:serviceUpdate "update" ; # SPARQL update service > fuseki:serviceReadWriteGraphStore "data" ; # SPARQL Graph store > protocol (read and write) > fuseki:dataset <#dataset-blah> ; > . > <#dataset-blah> rdf:type tdb:DatasetTDB ; > tdb:location "/Users/bill/tdb/crashtest" ; > # Query timeout on this dataset (1s, 1000 milliseconds) > ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "10000" ] ; > tdb:unionDefaultGraph true ; > fuseki log: > -------------- > 20:23:51 INFO Config :: Configuration file: test.ttl > 20:23:51 INFO Config :: Service: > <file:///Users/bill/code/fuseki-0.2.2/test.ttl#service1> > 20:23:51 INFO Config :: name = crashtest > 20:23:51 INFO Config :: query = /crashtest/query > 20:23:51 INFO Config :: update = /crashtest/update > 20:23:51 INFO Config :: graphStore(RW) = /crashtest/data > 20:23:52 INFO Server :: Dataset path = /crashtest > 20:23:52 INFO Server :: Fuseki 0.2.2-incubating-SNAPSHOT > 20120330-0505 > 20:23:52 INFO Server :: Jetty 7.x.y-SNAPSHOT > 20:23:52 INFO Server :: Started 2012/04/01 20:23:52 BST on > port 3030 > 20:24:15 INFO Fuseki :: [1] PUT > http://localhost:3030/crashtest/data?graph=http://test1 > 20:24:16 INFO Fuseki :: [1] 201 Created > 20:24:43 INFO Fuseki :: [2] GET > http://localhost:3030/crashtest/query?query=select+%28count%28*%29+as+%3Fc%29+where+%7B%3Fs+%3Fp+%3Fo%7D+&output=text&stylesheet=%2Fxml-to-html.xsl > 20:24:43 INFO Fuseki :: [2] Query = select (count(*) as ?c) > where {?s ?p ?o} > 20:24:43 INFO Fuseki :: [2] OK/select > 20:24:43 INFO Fuseki :: [2] 200 OK > 20:29:12 INFO Fuseki :: [3] PUT > http://localhost:3030/crashtest/data?graph=http://test2 > 20:29:14 INFO Fuseki :: [4] GET > http://localhost:3030/crashtest/query?query=select+%28count%28*%29+as+%3Fc%29+where+%7B%3Fs+%3Fp+%3Fo%7D+&output=text&stylesheet=%2Fxml-to-html.xsl > 20:29:14 INFO Fuseki :: [4] Query = select (count(*) as ?c) > where {?s ?p ?o} > 20:29:14 INFO Fuseki :: [4] OK/select > 20:29:14 INFO Fuseki :: [4] 200 OK > 20:29:18 INFO Fuseki :: [5] GET > http://localhost:3030/crashtest/query?query=select+%28count%28*%29+as+%3Fc%29+where+%7B%3Fs+%3Fp+%3Fo%7D+&output=text&stylesheet=%2Fxml-to-html.xsl > 20:29:18 INFO Fuseki :: [5] Query = select (count(*) as ?c) > where {?s ?p ?o} > 20:29:18 INFO Fuseki :: [5] OK/select > 20:29:18 INFO Fuseki :: [5] 200 OK > 20:29:28 WARN TDB :: Transaction not active: 5 > 20:29:28 INFO Fuseki :: [3] 201 Created > 20:29:28 INFO Fuseki :: [6] GET > http://localhost:3030/crashtest/query?query=select+%28count%28*%29+as+%3Fc%29+where+%7B%3Fs+%3Fp+%3Fo%7D+&output=text&stylesheet=%2Fxml-to-html.xsl > 20:29:28 INFO Fuseki :: [6] Query = select (count(*) as ?c) > where {?s ?p ?o} > 20:29:28 INFO Fuseki :: [6] OK/select > 20:29:28 INFO Fuseki :: [6] 200 OK > ls -l crashtest > ------------------ > drwxr-xr-x 31 bill bill 1054 1 Apr 20:24 ./ > drwxr-xr-x 15 bill bill 510 1 Apr 20:23 ../ > -rw-r--r-- 1 bill bill 16777216 1 Apr 20:29 GOSP.dat > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 GOSP.idn > -rw-r--r-- 1 bill bill 16777216 1 Apr 20:29 GPOS.dat > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 GPOS.idn > -rw-r--r-- 1 bill bill 16777216 1 Apr 20:29 GSPO.dat > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 GSPO.idn > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 OSP.dat > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 OSP.idn > -rw-r--r-- 1 bill bill 16777216 1 Apr 20:29 OSPG.dat > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 OSPG.idn > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 POS.dat > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 POS.idn > -rw-r--r-- 1 bill bill 16777216 1 Apr 20:29 POSG.dat > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 POSG.idn > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 SPO.dat > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 SPO.idn > -rw-r--r-- 1 bill bill 16777216 1 Apr 20:29 SPOG.dat > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 SPOG.idn > -rw-r--r-- 1 bill bill 0 1 Apr 20:24 journal.jrnl > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:24 node2id.dat > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:24 node2id.idn > -rw-r--r-- 1 bill bill 2485 1 Apr 20:24 nodes.dat > -rw-r--r-- 1 bill bill 5596812 1 Apr 20:29 nodes.dat-jrnl > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 prefix2id.dat > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 prefix2id.idn > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 prefixIdx.dat > -rw-r--r-- 1 bill bill 8388608 1 Apr 20:23 prefixIdx.idn > -rw-r--r-- 1 bill bill 0 1 Apr 20:23 prefixes.dat > -rw-r--r-- 1 bill bill 0 1 Apr 20:24 prefixes.dat-jrnl -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira