[
https://issues.apache.org/jira/browse/IGNITE-16256?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Lapin updated IGNITE-16256:
-------------------------------------
Description:
{code:java}
org.opentest4j.AssertionFailedError: More data is not expected. ==> expected:
<true> but was: <false> at
org.apache.ignite.distributed.ItInternalTableScanTest.requestNtest(ItInternalTableScanTest.java:592)
at
org.apache.ignite.distributed.ItInternalTableScanTest.testMultipleRowScan(ItInternalTableScanTest.java:248)
{code}
Test seems to be incorrect because there's a race between submitting all data
to retrievedItems list and calling Subscriber.onComplete(). In other words
instead of
{code:java}
@Override
public void onComplete() {
noMoreData.set(true);
}
});
assertTrue(waitForCondition(() -> retrievedItems.size() ==
submittedItems.size(), 2_000));
assertTrue(noMoreData.get(), "More data is not expected."); {code}
following should be used:
{code:java}
@Override
public void onComplete() {
subscriberAllDataAwaitLatch.countDown();
}
});
subscriberAllDataAwaitLatch.await();
assertEquals(submittedItems.size(), retrievedItems.size()); {code}
was:
{code:java}
org.opentest4j.AssertionFailedError: More data is not expected. ==> expected:
<true> but was: <false> at
org.apache.ignite.distributed.ItInternalTableScanTest.requestNtest(ItInternalTableScanTest.java:592)
at
org.apache.ignite.distributed.ItInternalTableScanTest.testMultipleRowScan(ItInternalTableScanTest.java:248)
{code}
Test seems to be incorrect because there's a race between submitting all data
to retrievedItems list and calling Subscriber.onComplete(). In other words
instead of
{code:java}
@Override
public void onComplete() {
noMoreData.set(true);
}
});
assertTrue(waitForCondition(() -> retrievedItems.size() ==
submittedItems.size(), 2_000));
assertTrue(noMoreData.get(), "More data is not expected."); {code}
following should be used:
{code:java}
@Override
public void onComplete() {
subscriberAllDataAwaitLatch.countDown();
}
});
subscriberAllDataAwaitLatch.await();
assertEquals(submittedItems.size(), retrievedItems.size()); {code}
> ItInternalTableScanTest.testMultipleRowScan is flaky
> ----------------------------------------------------
>
> Key: IGNITE-16256
> URL: https://issues.apache.org/jira/browse/IGNITE-16256
> Project: Ignite
> Issue Type: Improvement
> Reporter: Alexander Lapin
> Assignee: Alexander Lapin
> Priority: Major
> Labels: ignite-3
>
> {code:java}
> org.opentest4j.AssertionFailedError: More data is not expected. ==> expected:
> <true> but was: <false> at
> org.apache.ignite.distributed.ItInternalTableScanTest.requestNtest(ItInternalTableScanTest.java:592)
> at
> org.apache.ignite.distributed.ItInternalTableScanTest.testMultipleRowScan(ItInternalTableScanTest.java:248)
> {code}
> Test seems to be incorrect because there's a race between submitting all
> data to retrievedItems list and calling Subscriber.onComplete(). In other
> words instead of
> {code:java}
> @Override
> public void onComplete() {
> noMoreData.set(true);
> }
> });
> assertTrue(waitForCondition(() -> retrievedItems.size() ==
> submittedItems.size(), 2_000));
> assertTrue(noMoreData.get(), "More data is not expected."); {code}
> following should be used:
> {code:java}
> @Override
> public void onComplete() {
> subscriberAllDataAwaitLatch.countDown();
> }
> });
> subscriberAllDataAwaitLatch.await();
> assertEquals(submittedItems.size(), retrievedItems.size()); {code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)