[
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:
[email protected]
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)