This is an automated email from the ASF dual-hosted git repository.
lizhanhui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new aae7b37d0 [ISSUE 4915] Identify flaky tests (#4919)
aae7b37d0 is described below
commit aae7b37d049f97c525d0f92fad57324800c9f681
Author: Zhanhui Li <[email protected]>
AuthorDate: Mon Aug 29 19:52:53 2022 +0800
[ISSUE 4915] Identify flaky tests (#4919)
* Rule out tests that are flaky. Aka they failed to pass 64 sequential and
concurrent runs
* Change default log root directory for tests
* Follow test encyclopedia
* Fix test cases, allowing OS pick up available port to listen to
* Add sha256
* Use pull_request
---
.github/workflows/bazel.yml | 2 +-
WORKSPACE | 4 +--
client/BUILD.bazel | 2 +-
.../rocketmq/common/utils/CheckpointFileTest.java | 2 +-
test/BUILD.bazel | 35 +++++++++++++++++-----
.../rocketmq/test/grpc/v2/ClusterGrpcIT.java | 2 +-
.../apache/rocketmq/test/grpc/v2/GrpcBaseIT.java | 23 +++++++++-----
.../tools/command/server/ServerResponseMocker.java | 7 +++++
8 files changed, 54 insertions(+), 23 deletions(-)
diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml
index e251655e0..fccd6db63 100644
--- a/.github/workflows/bazel.yml
+++ b/.github/workflows/bazel.yml
@@ -1,6 +1,6 @@
name: Build and Run Tests by Bazel
on:
- pull_request_target:
+ pull_request:
types: [opened, reopened, synchronize]
push:
branches:
diff --git a/WORKSPACE b/WORKSPACE
index 735cf6f9a..9bc6419b6 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -109,11 +109,9 @@ load("@io_buildbuddy_buildbuddy_toolchain//:rules.bzl",
"buildbuddy")
buildbuddy(name = "buildbuddy_toolchain")
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
http_archive(
name = "rbe_default",
- # sha256 =
"c0d428774cbe70d477e1d07581d863f8dbff4ba6a66d20502d7118354a814bea",
+ sha256 =
"bd55bd8b2ffa850b5683367e7ab0756d6f51088866b2a81e4c07b6e87d04d8c5",
urls =
["https://storage.googleapis.com/rbe-toolchain/bazel-configs/rbe-ubuntu1604/latest/rbe_default.tar"],
)
diff --git a/client/BUILD.bazel b/client/BUILD.bazel
index c5c57cac0..8637a2316 100644
--- a/client/BUILD.bazel
+++ b/client/BUILD.bazel
@@ -59,7 +59,7 @@ GenTestRules(
deps = [
":tests",
],
- medium_tests = [
+ exclude_tests = [
"src/test/java/org/apache/rocketmq/client/consumer/DefaultLitePullConsumerTest",
],
)
diff --git
a/common/src/test/java/org/apache/rocketmq/common/utils/CheckpointFileTest.java
b/common/src/test/java/org/apache/rocketmq/common/utils/CheckpointFileTest.java
index 13a5794af..3943455f7 100644
---
a/common/src/test/java/org/apache/rocketmq/common/utils/CheckpointFileTest.java
+++
b/common/src/test/java/org/apache/rocketmq/common/utils/CheckpointFileTest.java
@@ -32,7 +32,7 @@ import org.junit.Test;
public class CheckpointFileTest {
private static final String FILE_PATH =
- Paths.get(System.getProperty("user.home"), "store-test",
"epoch.ckpt").toString();
+ Paths.get(System.getProperty("java.io.tmpdir"), "store-test",
"epoch.ckpt").toString();
private List<EpochEntry> entryList;
private CheckpointFile<EpochEntry> checkpoint;
diff --git a/test/BUILD.bazel b/test/BUILD.bazel
index cbece738d..a53dbeb0b 100644
--- a/test/BUILD.bazel
+++ b/test/BUILD.bazel
@@ -100,16 +100,35 @@ GenTestRules(
deps = [
":tests",
],
+ default_test_size = "medium",
exclude_tests = [
"src/test/java/org/apache/rocketmq/test/grpc/v2/GrpcBaseIT",
- ],
- medium_tests = [
-
"src/test/java/org/apache/rocketmq/test/base/dledger/DLedgerProduceAndConsumeIT",
-
"src/test/java/org/apache/rocketmq/test/client/consumer/topic/MulConsumerMulTopicIT",
-
"src/test/java/org/apache/rocketmq/test/client/producer/transaction/TransactionalMsgIT",
- "src/test/java/org/apache/rocketmq/test/delay/NormalMsgDelayIT",
- "src/test/java/org/apache/rocketmq/test/grpc/v2/ClusterGrpcIT",
- "src/test/java/org/apache/rocketmq/test/grpc/v2/LocalGrpcIT",
"src/test/java/org/apache/rocketmq/test/statictopic/StaticTopicIT",
+
"src/test/java/org/apache/rocketmq/test/client/consumer/topic/MulConsumerMulTopicIT",
+
"src/test/java/org/apache/rocketmq/test/client/consumer/tag/MulTagSubIT",
+
"src/test/java/org/apache/rocketmq/test/client/consumer/tag/TagMessageWith1ConsumerIT",
+
"src/test/java/org/apache/rocketmq/test/client/consumer/tag/TagMessageWithMulConsumerIT",
+
"src/test/java/org/apache/rocketmq/test/client/consumer/topic/OneConsumerMulTopicIT",
+
"src/test/java/org/apache/rocketmq/test/client/producer/order/OrderMsgDynamicRebalanceIT",
+
"src/test/java/org/apache/rocketmq/test/client/producer/order/OrderMsgIT",
+
"src/test/java/org/apache/rocketmq/test/client/producer/order/OrderMsgWithTagIT",
+
"src/test/java/org/apache/rocketmq/test/client/consumer/cluster/DynamicAddAndCrashIT",
+
"src/test/java/org/apache/rocketmq/test/client/consumer/cluster/DynamicAddConsumerIT",
+
"src/test/java/org/apache/rocketmq/test/client/consumer/cluster/DynamicCrashConsumerIT",
+
"src/test/java/org/apache/rocketmq/test/client/consumer/tag/TagMessageWithSameGroupConsumerIT",
+
"src/test/java/org/apache/rocketmq/test/client/producer/async/AsyncSendWithMessageQueueIT",
+
"src/test/java/org/apache/rocketmq/test/client/producer/async/AsyncSendWithMessageQueueSelectorIT",
+
"src/test/java/org/apache/rocketmq/test/client/producer/async/AsyncSendWithOnlySendCallBackIT",
+
"src/test/java/org/apache/rocketmq/test/client/producer/exception/msg/MessageUserPropIT",
+
"src/test/java/org/apache/rocketmq/test/client/producer/oneway/OneWaySendIT",
+
"src/test/java/org/apache/rocketmq/test/client/producer/oneway/OneWaySendWithMQIT",
+ "src/test/java/org/apache/rocketmq/test/tls/TLS_Mix_IT",
+ "src/test/java/org/apache/rocketmq/test/tls/TLS_Mix2_IT",
+ "src/test/java/org/apache/rocketmq/test/tls/TLS_IT",
+ "src/test/java/org/apache/rocketmq/test/offset/OffsetNotFoundIT",
+
"src/test/java/org/apache/rocketmq/test/client/producer/querymsg/QueryMsgByIdIT",
+
"src/test/java/org/apache/rocketmq/test/client/producer/oneway/OneWaySendWithSelectorIT",
+
"src/test/java/org/apache/rocketmq/test/smoke/NormalMessageSendAndRecvIT",
+
"src/test/java/org/apache/rocketmq/test/base/dledger/DLedgerProduceAndConsumeIT",
],
)
diff --git
a/test/src/test/java/org/apache/rocketmq/test/grpc/v2/ClusterGrpcIT.java
b/test/src/test/java/org/apache/rocketmq/test/grpc/v2/ClusterGrpcIT.java
index 88f4e8ba2..43b32493e 100644
--- a/test/src/test/java/org/apache/rocketmq/test/grpc/v2/ClusterGrpcIT.java
+++ b/test/src/test/java/org/apache/rocketmq/test/grpc/v2/ClusterGrpcIT.java
@@ -49,7 +49,7 @@ public class ClusterGrpcIT extends GrpcBaseIT {
messagingProcessor.start();
grpcMessagingApplication =
GrpcMessagingApplication.create(messagingProcessor);
grpcMessagingApplication.start();
- setUpServer(grpcMessagingApplication,
ConfigurationManager.getProxyConfig().getGrpcServerPort(), true);
+ setUpServer(grpcMessagingApplication, 0, true);
await().atMost(Duration.ofSeconds(40)).until(() -> {
Map<String, BrokerData> brokerDataMap =
MQAdminTestUtils.getCluster(nsAddr).getBrokerAddrTable();
diff --git
a/test/src/test/java/org/apache/rocketmq/test/grpc/v2/GrpcBaseIT.java
b/test/src/test/java/org/apache/rocketmq/test/grpc/v2/GrpcBaseIT.java
index df8b37838..d88b6b1c0 100644
--- a/test/src/test/java/org/apache/rocketmq/test/grpc/v2/GrpcBaseIT.java
+++ b/test/src/test/java/org/apache/rocketmq/test/grpc/v2/GrpcBaseIT.java
@@ -60,6 +60,7 @@ import com.google.protobuf.util.Durations;
import com.google.protobuf.util.Timestamps;
import io.grpc.Channel;
import io.grpc.Metadata;
+import io.grpc.Server;
import io.grpc.ServerInterceptors;
import io.grpc.ServerServiceDefinition;
import io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder;
@@ -114,7 +115,11 @@ import static org.awaitility.Awaitility.await;
public class GrpcBaseIT extends BaseConf {
- protected final int port = 8082;
+ /**
+ * Let OS pick up an available port.
+ */
+ private int port = 0;
+
/**
* This rule manages automatic graceful shutdown for the registered
servers and channels at the end of test.
*/
@@ -147,15 +152,11 @@ public class GrpcBaseIT extends BaseConf {
ConfigurationManager.initEnv();
ConfigurationManager.intConfig();
- ConfigurationManager.getProxyConfig().setGrpcServerPort(port);
ConfigurationManager.getProxyConfig().setNameSrvAddr(nsAddr);
// Set LongPollingReserveTimeInMillis to 500ms to reserve more time
for IT
ConfigurationManager.getProxyConfig().setLongPollingReserveTimeInMillis(500);
ConfigurationManager.getProxyConfig().setRocketMQClusterName(brokerController1.getBrokerConfig().getBrokerClusterName());
ConfigurationManager.getProxyConfig().setMinInvisibleTimeMillsForRecv(3);
-
- blockingStub =
createBlockingStub(createChannel(ConfigurationManager.getProxyConfig().getGrpcServerPort()));
- stub =
createStub(createChannel(ConfigurationManager.getProxyConfig().getGrpcServerPort()));
}
protected MessagingServiceGrpc.MessagingServiceStub createStub(Channel
channel) {
@@ -194,13 +195,19 @@ public class GrpcBaseIT extends BaseConf {
if (enableInterceptor) {
serviceDefinition = ServerInterceptors.intercept(serverImpl, new
ContextInterceptor(), new HeaderInterceptor());
}
- // Create a server, add service, start, and register for automatic
graceful shutdown.
- grpcCleanup.register(NettyServerBuilder.forPort(port)
+ Server server = NettyServerBuilder.forPort(port)
.directExecutor()
.addService(serviceDefinition)
.useTransportSecurity(selfSignedCertificate.certificate(),
selfSignedCertificate.privateKey())
.build()
- .start());
+ .start();
+ this.port = server.getPort();
+ // Create a server, add service, start, and register for automatic
graceful shutdown.
+ grpcCleanup.register(server);
+
+ ConfigurationManager.getProxyConfig().setGrpcServerPort(this.port);
+ blockingStub =
createBlockingStub(createChannel(ConfigurationManager.getProxyConfig().getGrpcServerPort()));
+ stub =
createStub(createChannel(ConfigurationManager.getProxyConfig().getGrpcServerPort()));
}
protected Channel createChannel(int port) throws SSLException {
diff --git
a/tools/src/test/java/org/apache/rocketmq/tools/command/server/ServerResponseMocker.java
b/tools/src/test/java/org/apache/rocketmq/tools/command/server/ServerResponseMocker.java
index b8dcaef2d..f1724c94d 100644
---
a/tools/src/test/java/org/apache/rocketmq/tools/command/server/ServerResponseMocker.java
+++
b/tools/src/test/java/org/apache/rocketmq/tools/command/server/ServerResponseMocker.java
@@ -29,6 +29,7 @@ import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import io.netty.handler.timeout.IdleStateHandler;
import io.netty.util.concurrent.Future;
+import org.apache.rocketmq.client.log.ClientLogger;
import org.apache.rocketmq.remoting.netty.NettyDecoder;
import org.apache.rocketmq.remoting.netty.NettyEncoder;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
@@ -39,6 +40,7 @@ import org.junit.Before;
import java.net.InetSocketAddress;
import java.util.HashMap;
import java.util.concurrent.ExecutionException;
+import org.junit.BeforeClass;
/**
* mock server response for command
@@ -49,6 +51,11 @@ public abstract class ServerResponseMocker {
private final NioEventLoopGroup eventLoopGroup = new NioEventLoopGroup();
+ @BeforeClass
+ public static void setLogHome() {
+ System.setProperty(ClientLogger.CLIENT_LOG_ROOT,
System.getProperty("java.io.tmpdir"));
+ }
+
@Before
public void before() {
start();