Hi Aaron,

Could you say some more about how the concurrent writes are happening and what they are doing? Just from the stacktrace I haven't managed to write a test case.

My guess is that another transaction is finishing a commit about the same time. But if the other transaction is mid-processing then its something else.

If you are able to putting in a JVM-suspend breakpoint at ThreadBufferingCache:88 and capture a thread dump, that would be very helpful - I realise it's not always easy to get up.

    Andy



On 15/01/2020 16:55, Aaron Coburn wrote:
This might be good to split off into a separate issue (and it doesn't
necessarily need to block the release), but I'm finding that, when using
TDB2 with this release candidate in a concurrent write context, I start
encountering a lot of errors. And those errors are definitely not present
with 3.13.1. Specifically, the issue seems to be related to contention over
the TDB2 ThreadBufferingCache. That buffering cache is present in the
3.13.1 release, and I'm not entirely sure what changed with 3.14.0 that
would trigger these errors, but this is the relevant part of the stack
trace:

Caused by: org.apache.jena.tdb2.TDBException: ThreadBufferingCache: already
buffering
at
org.apache.jena.tdb2.store.nodetable.ThreadBufferingCache.enableBuffering(ThreadBufferingCache.java:88)
at
org.apache.jena.tdb2.store.nodetable.NodeTableCache.updateStart(NodeTableCache.java:352)
at
org.apache.jena.tdb2.store.nodetable.NodeTableCache.notifyTxnStart(NodeTableCache.java:319)
at
org.apache.jena.dboe.transaction.txn.TransactionCoordinator.lambda$notifyBegin$14(TransactionCoordinator.java:915)
at
org.apache.jena.dboe.transaction.txn.TransactionCoordinator.lambda$listeners$0(TransactionCoordinator.java:207)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
at
org.apache.jena.dboe.transaction.txn.TransactionCoordinator.listeners(TransactionCoordinator.java:207)
at
org.apache.jena.dboe.transaction.txn.TransactionCoordinator.notifyBegin(TransactionCoordinator.java:915)
at
org.apache.jena.dboe.transaction.txn.TransactionCoordinator.begin(TransactionCoordinator.java:553)
at
org.apache.jena.dboe.transaction.txn.TransactionCoordinator.begin(TransactionCoordinator.java:509)
at
org.apache.jena.dboe.transaction.txn.TransactionalBase.begin(TransactionalBase.java:110)
at
org.apache.jena.dboe.storage.system.DatasetGraphStorage.begin(DatasetGraphStorage.java:59)
at
org.apache.jena.sparql.core.DatasetGraphWrapper.begin(DatasetGraphWrapper.java:233)
at org.apache.jena.sparql.core.DatasetImpl.begin(DatasetImpl.java:116)
at org.apache.jena.system.Txn.exec(Txn.java:76)
at org.apache.jena.system.Txn.executeWrite(Txn.java:125)
at
org.apache.jena.rdfconnection.RDFConnectionLocal.update(RDFConnectionLocal.java:80)

Effectively, I get that error at the first time a client attempts to
concurrently write to the TDB2 store. Subsequent attempts just hang.

Cheers,
Aaron





On Mon, 13 Jan 2020 at 11:23, Andy Seaborne <a...@apache.org> wrote:

Hi,

Here is a vote on the release of Apache Jena 3.14.0
This is the first proposed release candidate.

==== Changes:

https://s.apache.org/jena-3.14.0-jira

==== Release Vote

Everyone, not just committers, is invited to test and vote.
Please download and test the proposed release.

Staging repository:
    https://repository.apache.org/content/repositories/orgapachejena-1035

Proposed dist/ area:
    https://dist.apache.org/repos/dist/dev/jena/

Keys:
    https://svn.apache.org/repos/asf/jena/dist/KEYS

Git commit (browser URL):
    https://github.com/apache/jena/commit/19d42a5

Git Commit Hash:
    19d42a57a9debc675047b2d1ce9769979c43e7d8

Git Commit Tag:
    jena-3.14.0

Please vote to approve this release:

          [ ] +1 Approve the release
          [ ]  0 Don't care
          [ ] -1 Don't release, because ...

This vote will be open until at least

      Thursday, 16th January 2020 at 187:00 UTC

If you expect to check the release but the time limit does not work
for you, please email within the schedule above with an expected time
and we can extend the vote period.

Thanks,

        Andy

Checking needed:

+ are the GPG signatures fine?
+ are the checksums correct?
+ is there a source archive?

+ can the source archive really be built?
            (NB This requires a "mvn install" first time)
+ is there a correct LICENSE and NOTICE file in each artifact
            (both source and binary artifacts)?
+ does the NOTICE file contain all necessary attributions?
+ have any licenses of dependencies changed due to upgrades?
             if so have LICENSE and NOTICE been upgraded appropriately?
+ does the tag/commit in the SCM contain reproducible sources?


Reply via email to