gaurav-narula commented on code in PR #15987:
URL: https://github.com/apache/kafka/pull/15987#discussion_r1605472276
##########
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/runtime/MultiThreadedEventProcessorTest.java:
##########
@@ -475,9 +478,7 @@ public void testRecordThreadIdleRatio() throws Exception {
doAnswer(invocation -> {
long threadIdleTime = idleTimeCaptured.getValue();
assertEquals(100, threadIdleTime);
- synchronized (recordedIdleTimesMs) {
- recordedIdleTimesMs.add(threadIdleTime);
- }
+ recordedIdleTimesMs.add(threadIdleTime);
Review Comment:
Nit: might be useful to add a comment that this is safe because `numThreads`
in line 470 is `1`.
##########
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/runtime/MultiThreadedEventProcessorTest.java:
##########
@@ -61,8 +61,11 @@ public DelayEventAccumulator(Time time, long takeDelayMs) {
@Override
public CoordinatorEvent take() {
- time.sleep(takeDelayMs);
- return super.take();
+ CoordinatorEvent event = super.take();
Review Comment:
IIUC, the fix suggests the flakyness is because `super.take()` returns
`null` spuriously. I don't quite follow why that would happen though. Javadoc
for `EventAccumulator::take` mentions it returns `null` only when the
accumulator is closed. We also assert the value captured within doAnswer is
`100`, `recordedIdleTimesMs.size() == 8` and
`mockRuntimeMetrics.recordThreadIdleTime()` is invoked 8 times so where is the
extra invocation coming from?
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]