[ https://issues.apache.org/jira/browse/HIVE-26411?focusedWorklogId=793951&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-793951 ]
ASF GitHub Bot logged work on HIVE-26411: ----------------------------------------- Author: ASF GitHub Bot Created on: 21/Jul/22 22:24 Start Date: 21/Jul/22 22:24 Worklog Time Spent: 10m Work Description: jfsii commented on code in PR #3458: URL: https://github.com/apache/hive/pull/3458#discussion_r927147243 ########## ql/src/test/org/apache/hadoop/hive/ql/parse/repl/metric/TestReplicationMetricCollector.java: ########## @@ -75,6 +84,12 @@ public void setup() throws Exception { MetricCollector.getInstance().init(conf); Mockito.when(fmd.getFailoverEventId()).thenReturn(10L); Mockito.when(fmd.getFilePath()).thenReturn("dummyDir"); + disableBackgroundThreads(); + } + + private void disableBackgroundThreads() { + PowerMockito.mockStatic(MetricSink.class); + Mockito.when(MetricSink.getInstance()).thenReturn(metricSinkInstance); Review Comment: I'm new to the this testing framework - but I assume my understanding is correct: This works because metricSinkInstance gets its MetricSink() constructor called because it is annotated with Mock and since the metricSinkInstance never gets init called on it, it never starts the executorService, correct? Issue Time Tracking ------------------- Worklog Id: (was: 793951) Time Spent: 20m (was: 10m) > Fix TestReplicationMetricCollector flakiness > -------------------------------------------- > > Key: HIVE-26411 > URL: https://issues.apache.org/jira/browse/HIVE-26411 > Project: Hive > Issue Type: Bug > Components: Tests > Reporter: Hankó Gergely > Assignee: Hankó Gergely > Priority: Minor > Labels: pull-request-available > Time Spent: 20m > Remaining Estimate: 0h > > TestReplicationMetricCollector tests can fail intermittently because > ReplicationMetricCollector schedules a MetrikSink thread that consumes the > MetricCollector's > metricMap regularly and if this happens at the wrong time, the tests, that > use the MetricCollector.getInstance().getMetrics() method, can fail. > Example stack trace: > {code:java} > java.lang.AssertionError: expected:<1> but was:<0> at > org.junit.Assert.fail(Assert.java:88) at > org.junit.Assert.failNotEquals(Assert.java:743) at > org.junit.Assert.assertEquals(Assert.java:118) at > org.junit.Assert.assertEquals(Assert.java:555) at > org.junit.Assert.assertEquals(Assert.java:542) at > org.apache.hadoop.hive.ql.parse.repl.metric.TestReplicationMetricCollector.testFailoverReadyDumpMetrics(TestReplicationMetricCollector.java:227){code} -- This message was sent by Atlassian Jira (v8.20.10#820010)