This is an automated email from the ASF dual-hosted git repository.
alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git
The following commit(s) were added to refs/heads/master by this push:
new 0e390e19b [java] methods for setting run-time flags via test harness
0e390e19b is described below
commit 0e390e19b93a40302f53791afbcc95d110c28b57
Author: Alexey Serbin <[email protected]>
AuthorDate: Wed Feb 28 18:47:29 2024 -0800
[java] methods for setting run-time flags via test harness
When I was trying to reproduce an issue seen in the field, I found
that necessary functionality was missing in the Java test harness.
This patch addresses the deficiency, introducing the corresponding
methods to set run-time flags for Kudu masters and tablet servers.
This patch also updates the test harness class to provides a means
to restart a tablet server that hosts a particular tablet replica.
Change-Id: I5ed12b2ef9fd077534528361f6bb42efe3730182
Reviewed-on: http://gerrit.cloudera.org:8080/21093
Reviewed-by: Abhishek Chennaka <[email protected]>
Tested-by: Alexey Serbin <[email protected]>
---
.../java/org/apache/kudu/test/KuduTestHarness.java | 35 ++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git
a/java/kudu-test-utils/src/main/java/org/apache/kudu/test/KuduTestHarness.java
b/java/kudu-test-utils/src/main/java/org/apache/kudu/test/KuduTestHarness.java
index 47b6656f0..b8d01621e 100644
---
a/java/kudu-test-utils/src/main/java/org/apache/kudu/test/KuduTestHarness.java
+++
b/java/kudu-test-utils/src/main/java/org/apache/kudu/test/KuduTestHarness.java
@@ -336,6 +336,30 @@ public class KuduTestHarness extends ExternalResource {
return hp;
}
+ /**
+ * Set a run-time flag for a tablet server identified by its host and port.
+ * @param hp HostAndPort object identifying the target tablet server
+ * @param flag a flag to set (prefix dash(es) omitted)
+ * @param value a stringified representation of the flag's value to set
+ * @throws IOException
+ */
+ public void setTabletServerFlag(HostAndPort hp, String flag, String value)
throws IOException {
+ miniCluster.setTServerFlag(hp, flag, value);
+ }
+
+ /**
+ * Kills and starts back a tablet server that serves the given tablet's
leader.
+ * @param tablet a LocatedTablet which is hosted by the target tablet server
+ * @return the host and port of the restarted tablet server
+ * @throws Exception
+ */
+ public HostAndPort restartTabletLeader(LocatedTablet tablet) throws
Exception {
+ HostAndPort hp = findLeaderTabletServer(tablet);
+ miniCluster.killTabletServer(hp);
+ miniCluster.startTabletServer(hp);
+ return hp;
+ }
+
/**
* Kills and restarts the leader master.
* @return the host and port of the restarted master
@@ -386,6 +410,17 @@ public class KuduTestHarness extends ExternalResource {
miniCluster.resumeMasterServer(hp);
}
+ /**
+ * Set a run-time flag for a Kudu master identified by its host and port.
+ * @param hp HostAndPort object identifying the target master
+ * @param flag a flag to set (prefix dash(es) omitted)
+ * @param value a stringified representation of the flag's value to set
+ * @throws IOException
+ */
+ public void setMasterFlag(HostAndPort hp, String flag, String value) throws
IOException {
+ miniCluster.setMasterFlag(hp, flag, value);
+ }
+
/**
* Return the comma-separated list of "host:port" pairs that describes the
master
* config for this cluster.