[
https://issues.apache.org/jira/browse/JENA-1302?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15902978#comment-15902978
]
Andy Seaborne commented on JENA-1302:
-------------------------------------
I think I have identified the problem.
{{DatasetGraphText.commit}} needs to be thread safe against the sequence of
steps it is taking to commit the text index and the database.
A simple patch up and my test set runs the example test case. The next step is
to ensure the fix also applies to other code paths.
It runs to the point where an Linux OS issue with ports causes the test to lock
up while ports are freed by the OS. This is a known issue with port open/close
at high frequency when the machine is also under high CPU load. The project has
encountered it before.
FYI (2017-03):
TDB2 includes a general framework that can handle coordinating commits to
multiple sources, using Lucence "prepareCommit, commit" sequence but that is
longer term.
> Intermittent Lucene prepareCommit exception during heavy read/write load
> ------------------------------------------------------------------------
>
> Key: JENA-1302
> URL: https://issues.apache.org/jira/browse/JENA-1302
> Project: Apache Jena
> Issue Type: Bug
> Components: Fuseki, TDB, Text
> Affects Versions: Jena 3.3.0
> Environment: CentOS 7.3 inside VM, 2 cores, OpenJDK 1.8.0_121
> (64-bit), 1GB JVM heap, Fuseki running as service
> Reporter: Vilnis Termanis (Iotic Labs)
> Assignee: Andy Seaborne
> Attachments: prepareCommit_error.tgz
>
>
> (*Note*: Could not add Fuseki 2.6.0 as affected version although I assume
> this is a TDB/text rather than Fuseki-related issue.)
> *Steps:*
> # Start with plain Fuseki + given configuration (TDB store + lucene text
> indexing)
> # Import 1k.ttl
> # Run lockup.py (same host, mix of multiple parallel updates & single select)
> *Result:*
> Every now and again one of the update queries fails with a 500 server error
> which is logged as:
> {{DatasetGraphText ERROR Exception in prepareCommit: prepareCommit was
> already called with no corresponding call to commit}}
> *Notes:*
> - Not reproducible without fix for JENA-1296 (and discovered during fix
> verification for said issue)
> - Run with
> [apache-jena-fuseki-2.6.0-20170228.233930-10.tar.gz|https://repository.apache.org/content/repositories/snapshots/org/apache/jena/apache-jena-fuseki/2.6.0-SNAPSHOT/apache-jena-fuseki-2.6.0-20170228.233930-10.tar.gz]
> - From cold-start of Fuseki, occurs within 30s of script run
> - Supplied test script required Python 3, {{rdflib>=4.2.2}} &
> {{SPARQLWrapper>=1.8.0}}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)