-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrading to RDF4J 2.2.4 produces integration test failures. #221
Comments
…f statements in a context. Related to rmap-project#221
* Use an empty base url; none of the URIs are relative in the data. * Share HTTP-based methods for depositing and updating discos in BaseHttpIT. * Prepare BaseHttpIT for additonal integration tests - Utility classes with methods for manipulating RDF and working with OkHttp - Additional properties for working with the RDF4J server * IT which queries the RDF4J "size" endpoint, which counts the number of statements in a context. Related to #221
There seems to be more to it than this one problem. I attempted to update to both 2.2.4 and 2.4.2. As part of the updates. For 2.2.4, I circumvented the issue described above by adding a SPARQL query to check for a context. (see my branch here). The tests in that version all pass, but when deployed, the first DiSCO to be posted through the API after deploying a local instance often does not get created properly in the triplestore, though it will sometimes get indexed. While navigating, you will run into a mixture of errors at different points. Most common:
Further inspection finds
Using 2.4.2, it has these problems, plus it hangs without error after a few minutes of browsing the webapp so that you can no longer navigate DiSCOs. Often the last activity it does is attempt to retrieve the DiSCO versions. The way the UI is designed, it does 2 similar requests in parallel which may be causing a problem (sometimes you will see the 2 version requests fire off in tandem before it hangs). Because of the tandem firing of requests, it suggests it might be thread related, but it's not clear why the new rdf4j would cause or maybe just highlight some existing issues. I note that lineage methods are the only static methods in RMapService, not sure if that could be related as well. |
PR #255 also has a little more information about this issue. A few thoughts related to this that I wanted to capture: |
Upgrading to RDF4J 2.2.4 (from 2.2.2) produces a number of test failures. At least one of the IT failures has to do with calculating the number of statements present in an RDF4J context.
An example failure:
The source of this issue is in
ORMapObjectMgr
:Specifically here:
With 2.2.4
ts.getConnection().size(id)
returns0
, (whereid
is considered to be the context (i.e. graph uri)). With 2.2.2, this method behaves as expected, returning some positive integer for the number of statements present in the triplestore for the graph. Whents.getConnection().size(id)
returns0
, the methodisRMapType(Rdf4jTriplestore ts, IRI id, IRI typeIRI)
returnsfalse
, ultimately resulting in theinfo.rmapproject.core.exception.RMapDiSCONotFoundException: No DiSCO with id rmap:rmd18m7mr7
exception.The text was updated successfully, but these errors were encountered: