You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Pavel Mikhailovskii (Jira)" <ji...@apache.org> on 2019/11/27 12:43:00 UTC

[jira] [Created] (JENA-1785) A newly created node can remain invisible after commit

Pavel Mikhailovskii created JENA-1785:
-----------------------------------------

             Summary: A newly created node can remain invisible after commit
                 Key: JENA-1785
                 URL: https://issues.apache.org/jira/browse/JENA-1785
             Project: Apache Jena
          Issue Type: Bug
          Components: TDB2
    Affects Versions: Jena 3.13.1, Jena 3.13.0
            Reporter: Pavel Mikhailovskii
         Attachments: TestVisibilityOfChanges.java

A node once marked as non-present (_NodeTableCache.nonPresent_) can remain invisible even after it's created and the transaction is committed. That might happen because there's no guarantee that *all* newly created nodes will be eventually added to the "base" version _ThreadBufferingCache.baseCache_ of theĀ _node2id_Cache_ (as the _localCache_ has limited capacity) or removed from the "base" version of the _nonPresent_ cache (even if they were, there would still be a chance of re-adding them by some read transaction). 

The simplest fix is to get rid of the _nonPresent_ cache which seems to be of limited use anyway. A more sophisticated fix would involve keeping track of all newly allocated nodes and their removal from the base version of _nonPresent_ cache on transaction commit.

To reproduce: see the attached test.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)