]
Galder Zamarreño updated ISPN-8228:
-----------------------------------
Status: Open (was: New)
End invalidation messages lingering from previous Hibernate Cache
tests
-----------------------------------------------------------------------
Key: ISPN-8228
URL:
https://issues.jboss.org/browse/ISPN-8228
Project: Infinispan
Issue Type: Bug
Components: Hibernate Cache
Affects Versions: 9.1.0.Final
Reporter: Galder Zamarreño
Assignee: Galder Zamarreño
Labels: testsuite_stability
Fix For: 9.1.1.Final
While trying to replicate size related failures in ISPN-8206, I've discovered some
put from load calls do not always succeed, e.g.
{code}
[ERROR] Tests run: 144, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 20.959 s
<<< FAILURE! - in
org.infinispan.test.hibernate.cache.collection.CollectionRegionAccessStrategyTest
[ERROR] testRemoveAll[Non-JTA,
INVALIDATION_SYNC,AccessType[transactional]](org.infinispan.test.hibernate.cache.collection.CollectionRegionAccessStrategyTest)
Time elapsed: 0.017 s <<< FAILURE!
java.lang.AssertionError
at org.junit.Assert.fail(Assert.java:86)
at org.junit.Assert.assertTrue(Assert.java:41)
at org.junit.Assert.assertTrue(Assert.java:52)
at
org.infinispan.test.hibernate.cache.AbstractRegionAccessStrategyTest.evictOrRemoveAllTest(AbstractRegionAccessStrategyTest.Java:557)
at
org.infinispan.test.hibernate.cache.AbstractRegionAccessStrategyTest.testRemoveAll(AbstractRegionAccessStrategyTest.java:438)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at
org.hibernate.testing.junit4.ExtendedFrameworkMethod.invokeExplosively(ExtendedFrameworkMethod.java:45)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at
org.infinispan.test.hibernate.cache.util.InfinispanTestingSetup$1.evaluate(InfinispanTestingSetup.java:38)
at
org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:74)
{code}
The reason these sometimes fails is because previously running tests, e.g. testRemove,
are not waiting for end invalidation message to be consumed before finishing the test. As
a result of this, an end invalidation from an earlier test can be left lingering and can
trigger a latch that should only be triggered by an end invalidation message within the
test itself.