Mirza Aliev created IGNITE-24238:
------------------------------------
Summary:
ItIgniteDistributionZoneManagerNodeRestartTest#testCreationZoneWhenDataNodesAreDeletedIsNotSuccessful
i
Key: IGNITE-24238
URL: https://issues.apache.org/jira/browse/IGNITE-24238
Project: Ignite
Issue Type: Improvement
Reporter: Mirza Aliev
{{ItIgniteDistributionZoneManagerNodeRestartTest#testCreationZoneWhenDataNodesAreDeletedIsNotSuccessful}}
is flaky with
{noformat}
org.mockito.exceptions.misusing.UnfinishedStubbingException:
Unfinished stubbing detected here:
-> at
org.apache.ignite.internal.distributionzones.ItIgniteDistributionZoneManagerNodeRestartTest.testCreationZoneWhenDataNodesAreDeletedIsNotSuccessful(ItIgniteDistributionZoneManagerNodeRestartTest.java:642)
E.g. thenReturn() may be missing.
Examples of correct stubbing:
when(mock.isOk()).thenReturn(true);
when(mock.isOk()).thenThrow(exception);
doThrow(exception).when(mock).someVoidMethod();
Hints:
1. missing thenReturn()
2. you are trying to stub a final method, which is not supported
3. you are stubbing the behaviour of another mock inside before 'thenReturn'
instruction is completed
org.mockito.exceptions.misusing.UnfinishedStubbingException:
Unfinished stubbing detected here:
-> at
org.apache.ignite.internal.distributionzones.ItIgniteDistributionZoneManagerNodeRestartTest.testCreationZoneWhenDataNodesAreDeletedIsNotSuccessful(ItIgniteDistributionZoneManagerNodeRestartTest.java:642)
E.g. thenReturn() may be missing.
Examples of correct stubbing:
when(mock.isOk()).thenReturn(true);
when(mock.isOk()).thenThrow(exception);
doThrow(exception).when(mock).someVoidMethod();
Hints:
1. missing thenReturn()
2. you are trying to stub a final method, which is not supported
3. you are stubbing the behaviour of another mock inside before 'thenReturn'
instruction is completed
at
app//org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl.invoke(MetaStorageManagerImpl.java:991)
at
app//org.apache.ignite.internal.distributionzones.ItIgniteDistributionZoneManagerNodeRestartTest.testCreationZoneWhenDataNodesAreDeletedIsNotSuccessful(ItIgniteDistributionZoneManagerNodeRestartTest.java:651)
at [email protected]/java.lang.reflect.Method.invoke(Method.java:568)
at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1511)
at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1511)
{noformat}
It seems that we have some concurrent access to MS that is supposed to be
stubed.
Form Mockito docs:
{noformat}
*However Mockito is only thread-safe in healthy tests, that is tests without
multiple threads stubbing/verifying a shared mock. Stubbing or verification of
a shared mock from different threads is NOT the proper way of testing because
it will always lead to intermittent behavior. In general, mutable state +
assertions in multi-threaded environment lead to random results. If you do
stub/verify a shared mock across threads you will face occasional exceptions
like: WrongTypeOfReturnValue, etc.*
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)