The GitHub Actions job "CI" on 
grails-core.git/feat/neo4j-gorm-registry-migration has failed.
Run started by GitHub user borinquenkid (triggered by borinquenkid).

Head commit for run:
452449b2269cedef5129dab94138ef4829c51f9b / Walter Duque de Estrada 
<[email protected]>
test(tck): skip TCK "Test optimistic locking" for Neo4j

grails-data-neo4j-core:test started running the shared TCK suite when the
standalone Neo4j build was folded into the root settings.gradle. The TCK's
OptimisticLockingSpec."Test optimistic locking" fails deterministically under
Neo4j, and its failure has nothing to do with timing or the GormRegistry
wiring.

GrailsDataNeo4jTckManager.createSession() opens a transaction per test and
never commits it before the feature body runs. The TCK spec only calls
manager.session.clear() before spawning the second thread, so the freshly
created OptLockVersioned node is still uncommitted. Neo4j is read-committed,
so the background thread's own transaction cannot see it:

    [Test worker] unmarshalling entity OptLockVersioned id [0]   <- found
    [Thread-31]   QUERY MATCH (n:OptLockVersioned) WHERE ID(n)=$1 ... (no rows)
    [Thread-31]   TX CLOSE                                        <- no UPDATE

reloaded is null, the background assert dies inside the thread (swallowed by
Thread.start{}.join()), no competing version bump ever happens, and the main
thread's save succeeds - so ex is null and the assertion at line 102 fails.
The sleep length is irrelevant; the background thread finishes ~2s before the
main save.

Neo4j keeps equivalent coverage through its own adapted copy,
grails.gorm.tests.OptimisticLockingSpec in grails-data-neo4j-core, which
commits the session's transaction first. This mirrors the existing Hibernate
exclusion on the same feature and the neo4j.gorm.suite gating already used in
ValidationSpec for the same "Neo4j requires a transaction" reason.

Co-Authored-By: Claude Sonnet 5 <[email protected]>

Report URL: https://github.com/apache/grails-core/actions/runs/30684731696

With regards,
GitHub Actions via GitBox

Reply via email to