Skip to content

Commit 41a3a35

Browse files
authored
[ISSUE #10373] Fix quarantined flaky tests and remove CI rerun workflow (#10379)
1 parent 051ba27 commit 41a3a35

5 files changed

Lines changed: 12 additions & 47 deletions

File tree

.github/workflows/rerun-workflow.yml

Lines changed: 0 additions & 22 deletions
This file was deleted.

broker/src/test/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageServiceImplTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@
6161
import static org.mockito.Mockito.timeout;
6262
import static org.mockito.Mockito.verify;
6363
import static org.mockito.Mockito.when;
64-
import org.junit.Ignore;
6564

6665
@RunWith(MockitoJUnitRunner.class)
6766
public class TransactionalMessageServiceImplTest {
@@ -163,15 +162,14 @@ public void testDeletePrepareMessage_queueFull() throws InterruptedException {
163162
assertThat(res).isFalse();
164163
}
165164

166-
@Ignore("Flaky: fails 1/100 runs (1.0%)")
167165
@Test
168166
public void testDeletePrepareMessage_maxSize() throws InterruptedException {
169167
brokerController.getBrokerConfig().setTransactionOpMsgMaxSize(1);
170168
brokerController.getBrokerConfig().setTransactionOpBatchInterval(3000);
171169
queueTransactionMsgService.open();
172170
boolean res = queueTransactionMsgService.deletePrepareMessage(createMessageBrokerInner(1000, "test", "testHello"));
173171
assertThat(res).isTrue();
174-
verify(bridge, timeout(50)).writeOp(any(Integer.class), any(Message.class));
172+
verify(bridge, timeout(3000)).writeOp(any(Integer.class), any(Message.class));
175173
queueTransactionMsgService.close();
176174
}
177175

client/src/test/java/org/apache/rocketmq/client/trace/DefaultMQConsumerWithTraceTest.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
import org.apache.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl;
5050
import org.apache.rocketmq.client.impl.consumer.ProcessQueue;
5151
import org.apache.rocketmq.client.impl.consumer.PullAPIWrapper;
52-
import org.apache.rocketmq.client.impl.consumer.PullMessageService;
5352
import org.apache.rocketmq.client.impl.consumer.PullRequest;
5453
import org.apache.rocketmq.client.impl.consumer.PullResultExt;
5554
import org.apache.rocketmq.client.impl.consumer.RebalancePushImpl;
@@ -88,7 +87,6 @@
8887
import static org.mockito.Mockito.doReturn;
8988
import static org.mockito.Mockito.spy;
9089
import static org.mockito.Mockito.when;
91-
import org.junit.Ignore;
9290

9391
@RunWith(MockitoJUnitRunner.Silent.class)
9492
public class DefaultMQConsumerWithTraceTest {
@@ -217,7 +215,6 @@ public void terminate() {
217215
pushConsumer.shutdown();
218216
}
219217

220-
@Ignore("Flaky: fails 1/100 runs (1.0%)")
221218
@Test
222219
public void testPullMessage_WithTrace_Success() throws InterruptedException, RemotingException, MQBrokerException, MQClientException {
223220
traceProducer.getDefaultMQProducerImpl().getMqClientFactory().registerProducer(producerGroupTraceTemp, traceProducer.getDefaultMQProducerImpl());
@@ -234,9 +231,8 @@ public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs,
234231
}
235232
}));
236233

237-
PullMessageService pullMessageService = mQClientFactory.getPullMessageService();
238-
pullMessageService.executePullRequestImmediately(createPullRequest());
239-
countDownLatch.await(30, TimeUnit.SECONDS);
234+
pushConsumer.getDefaultMQPushConsumerImpl().pullMessage(createPullRequest());
235+
countDownLatch.await(10, TimeUnit.SECONDS);
240236
MessageExt msg = messageAtomic.get();
241237
assertThat(msg).isNotNull();
242238
assertThat(msg.getTopic()).isEqualTo(topic);

client/src/test/java/org/apache/rocketmq/client/trace/DefaultMQLitePullConsumerWithTraceTest.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,6 @@
8080
import static org.mockito.Mockito.lenient;
8181
import static org.mockito.Mockito.spy;
8282
import static org.mockito.Mockito.when;
83-
import org.junit.Ignore;
84-
8583
@RunWith(MockitoJUnitRunner.class)
8684
public class DefaultMQLitePullConsumerWithTraceTest {
8785

@@ -118,6 +116,11 @@ public void init() throws Exception {
118116
MQClientManager.getInstance(), "factoryTable", true);
119117
factoryTable.forEach((clientId, instance) -> instance.shutdown());
120118
factoryTable.clear();
119+
120+
Field field = RebalanceService.class.getDeclaredField("waitInterval");
121+
field.setAccessible(true);
122+
field.set(null, 100L);
123+
121124
mQClientFactory = null;
122125
mqClientInstance = null;
123126
traceMqClientInstance = null;
@@ -154,7 +157,6 @@ public void destroy() {
154157
}
155158
}
156159

157-
@Ignore("Flaky: fails 6/100 runs (6.0%)")
158160
@Test
159161
public void testSubscribe_PollMessageSuccess_WithDefaultTraceTopic() throws Exception {
160162
DefaultLitePullConsumer litePullConsumer = createLitePullConsumerWithDefaultTraceTopic();
@@ -171,7 +173,6 @@ public void testSubscribe_PollMessageSuccess_WithDefaultTraceTopic() throws Exce
171173
}
172174
}
173175

174-
@Ignore("Flaky: fails 5/100 runs (5.0%)")
175176
@Test
176177
public void testSubscribe_PollMessageSuccess_WithCustomizedTraceTopic() throws Exception {
177178
DefaultLitePullConsumer litePullConsumer = createLitePullConsumerWithCustomizedTraceTopic();
@@ -238,13 +239,6 @@ private void initDefaultLitePullConsumer(DefaultLitePullConsumer litePullConsume
238239
mQClientFactory.getClientConfig().setDecodeReadBody(true);
239240
field.set(litePullConsumerImpl, mQClientFactory);
240241

241-
field = MQClientInstance.class.getDeclaredField("rebalanceService");
242-
field.setAccessible(true);
243-
RebalanceService rebalanceService = (RebalanceService) field.get(mQClientFactory);
244-
field = RebalanceService.class.getDeclaredField("waitInterval");
245-
field.setAccessible(true);
246-
field.set(rebalanceService, 100);
247-
248242
PullAPIWrapper pullAPIWrapper = litePullConsumerImpl.getPullAPIWrapper();
249243
field = PullAPIWrapper.class.getDeclaredField("mQClientFactory");
250244
field.setAccessible(true);

filter/src/test/java/org/apache/rocketmq/filter/BloomFilterTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import java.util.Random;
2626

2727
import static org.assertj.core.api.Assertions.assertThat;
28-
import org.junit.Ignore;
2928

3029
public class BloomFilterTest {
3130

@@ -143,14 +142,14 @@ public void testBloomFilterData() {
143142
assertThat(bloomFilter.isValid(bloomFilterData)).isFalse();
144143
}
145144

146-
@Ignore("Flaky: fails 1/100 runs (1.0%)")
147145
@Test
148146
public void testCheckFalseHit() {
147+
Random random = new Random(42);
149148
BloomFilter bloomFilter = BloomFilter.createByFn(1, 300);
150149
BitsArray bits = BitsArray.create(bloomFilter.getM());
151150
int falseHit = 0;
152151
for (int i = 0; i < bloomFilter.getN(); i++) {
153-
String str = randomString((new Random(System.nanoTime())).nextInt(127) + 10);
152+
String str = randomString(random, random.nextInt(127) + 10);
154153
int[] bitPos = bloomFilter.calcBitPositions(str);
155154

156155
if (bloomFilter.checkFalseHit(bitPos, bits)) {
@@ -163,10 +162,10 @@ public void testCheckFalseHit() {
163162
assertThat(falseHit).isLessThanOrEqualTo(bloomFilter.getF() * bloomFilter.getN() / 100);
164163
}
165164

166-
private String randomString(int length) {
165+
private String randomString(Random random, int length) {
167166
StringBuilder stringBuilder = new StringBuilder(length);
168167
for (int i = 0; i < length; i++) {
169-
stringBuilder.append((char) ((new Random(System.nanoTime())).nextInt(123 - 97) + 97));
168+
stringBuilder.append((char) (random.nextInt(26) + 'a'));
170169
}
171170

172171
return stringBuilder.toString();

0 commit comments

Comments
 (0)