[ https://issues.apache.org/jira/browse/BEAM-9470?focusedWorklogId=401948&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-401948 ]
ASF GitHub Bot logged work on BEAM-9470: ---------------------------------------- Author: ASF GitHub Bot Created on: 12/Mar/20 03:57 Start Date: 12/Mar/20 03:57 Worklog Time Spent: 10m Work Description: jfarr commented on pull request #11090: [BEAM-9470] :sdks:java:io:kinesis:test is flaky URL: https://github.com/apache/beam/pull/11090#discussion_r391389538 ########## File path: sdks/java/io/kinesis/src/test/java/org/apache/beam/sdk/io/kinesis/ShardReadersPoolTest.java ########## @@ -324,10 +325,15 @@ public void shouldCallRateLimitPolicy() } } + ArgumentCaptor<List<KinesisRecord>> recordsCaptor = ArgumentCaptor.forClass(List.class); + verify(customRateLimitPolicy, atLeastOnce()).onSuccess(recordsCaptor.capture()); + List<List<KinesisRecord>> capturedRecords = recordsCaptor.getAllValues(); + assertThat(capturedRecords).contains( + ImmutableList.of(a, b), + singletonList(c), + singletonList(d), + Collections.emptyList() + ); verify(customRateLimitPolicy).onThrottle(same(e)); - verify(customRateLimitPolicy).onSuccess(eq(ImmutableList.of(a, b))); - verify(customRateLimitPolicy).onSuccess(eq(singletonList(c))); - verify(customRateLimitPolicy).onSuccess(eq(singletonList(d))); Review comment: @suztomo You have a good point. The intention of this test is to validate that every time readNextBatch() returns a list of records onSuccess() gets called and every time it throws `KinesisClientThrottledException` onThrottle() gets called. I can see a couple of code paths where readNextBatch() could return records without onSuccess() getting called, namely if any exceptions are thrown along in here: https://github.com/apache/beam/blob/d62521f69ead4b58924043f041978d49e9beeb62/sdks/java/io/kinesis/src/main/java/org/apache/beam/sdk/io/kinesis/ShardReadersPool.java#L146-L149 I haven't seen evidence that this is what's happening, but let's try my latest changes in ShardReadersPool and see if that fixes it. With this change it should not be possible for readNextBatch() to return without onSuccess() being called. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 401948) Time Spent: 3h 40m (was: 3.5h) > :sdks:java:io:kinesis:test is flaky > ----------------------------------- > > Key: BEAM-9470 > URL: https://issues.apache.org/jira/browse/BEAM-9470 > Project: Beam > Issue Type: Test > Components: io-java-kinesis > Reporter: Etienne Chauchot > Assignee: Jonothan Farr > Priority: Major > Time Spent: 3h 40m > Remaining Estimate: 0h > > [https://scans.gradle.com/s/b4jmmu72ku5jc/console-log?task=:sdks:java:io:kinesis:test] -- This message was sent by Atlassian Jira (v8.3.4#803005)