[
https://issues.redhat.com/browse/WFLY-10173?page=com.atlassian.jira.plugi...
]
Cheng Fang commented on WFLY-10173:
-----------------------------------
I was able to reproduce it about 1 out of 5 times running
{{org.jboss.as.test.integration.ejb.management.deployments.EjbInvocationStatisticsTestCase}}.
After the fix in my PR (extending the sleep time in the singleton busiess method to 1000
ms), I no longer see this failure in many runs.
I think the problem with the test was test singleton method sleeps for 50 ms, and the test
client submits 4 tasks to a thread pool to invoke this singleton business method
concurrently. If the first request gets the singleton instance and the rest 3 are forced
to wait, then the theoretic test result will be 150 ms.
But the scheduling of the client-side thread pool is undeterministic. It may submit
invocation tasks one by one, or after some pause. So it's possible when a request
comes in, the singleton bean instance may already be free, hence 0 wait-time. When wait
happens at the client side, there is no or less wait for the singleton bean.
EjbInvocationStatisticsTestCase fails on Windows: wait-time=0
-------------------------------------------------------------
Key: WFLY-10173
URL:
https://issues.redhat.com/browse/WFLY-10173
Project: WildFly
Issue Type: Bug
Components: Test Suite
Affects Versions: 12.0.0.Final
Reporter: Jan Kalina
Assignee: Cheng Fang
Priority: Major
Fix For: 20.0.0.Final
Sometime, when running EjbInvocationStatisticsTestCase on Windows, assertion fails, as
wait-time is 0 (verified it is 0 by adding debug message).
For me it fails allTests in most of cases, but when running test standalone, it fails
only in 1 of 4 cases.
I suppose it is because of too short sleep in AbstractManagedBean. (in test is called 4
times, each invocation include 50ms sleep, so I consider probable the wait-time is 0 -
need to use longer sleeps to fulfill the test)
{code}
[ERROR] Tests run: 4, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 3.078 s
<<< FAILURE! - in
org.jboss.as.test.integration.ejb.management.deployments.EjbInvocationStatisticsTestCase
[ERROR]
testSingletonWaitTime(org.jboss.as.test.integration.ejb.management.deployments.EjbInvocationStatisticsTestCase)
Time elapsed: 0.438 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.jboss.as.test.integration.ejb.management.deployments.EjbInvocationStatisticsTestCase.validateWaitTimeStatistic(EjbInvocationStatisticsTestCase.java:179)
at
org.jboss.as.test.integration.ejb.management.deployments.EjbInvocationStatisticsTestCase.testSingletonWaitTime(EjbInvocationStatisticsTestCase.java:148)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.jboss.arquillian.junit.Arquillian$8$1.invoke(Arquillian.java:379)
...
{code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)