This is an automated email from the ASF dual-hosted git repository.
chia7712 pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/trunk by this push:
new 69f0481342b MINOR: the package of JmxTool is incorrect when running
quota_test.py (#13233)
69f0481342b is described below
commit 69f0481342b8f2dc3edd59da7ebddd249728d297
Author: Chia-Ping Tsai <[email protected]>
AuthorDate: Mon Feb 13 01:31:55 2023 +0800
MINOR: the package of JmxTool is incorrect when running quota_test.py
(#13233)
Reviewers: Federico Valeri <[email protected]>, David Jacot
<[email protected]>
---
tests/kafkatest/services/monitor/jmx.py | 29 ++++++++++++++++++-----------
1 file changed, 18 insertions(+), 11 deletions(-)
diff --git a/tests/kafkatest/services/monitor/jmx.py
b/tests/kafkatest/services/monitor/jmx.py
index 03eec51f717..628e09a5718 100644
--- a/tests/kafkatest/services/monitor/jmx.py
+++ b/tests/kafkatest/services/monitor/jmx.py
@@ -19,7 +19,7 @@ from ducktape.cluster.remoteaccount import RemoteCommandError
from ducktape.utils.util import wait_until
from kafkatest.directory_layout.kafka_path import KafkaPathResolverMixin
-from kafkatest.version import get_version, V_0_11_0_0, DEV_BRANCH
+from kafkatest.version import get_version, V_0_11_0_0, V_3_4_0, DEV_BRANCH
class JmxMixin(object):
"""This mixin helps existing service subclasses start JmxTool on their
worker nodes and collect jmx stats.
@@ -44,7 +44,7 @@ class JmxMixin(object):
self.jmx_tool_err_log = os.path.join(root, "jmx_tool.err.log")
def clean_node(self, node, idx=None):
- node.account.kill_java_processes(self.jmx_class_name(),
clean_shutdown=False,
+
node.account.kill_java_processes(self.jmx_class_name(self.jmxtool_version(node)),
clean_shutdown=False,
allow_fail=True)
if idx is None:
idx = self.idx(node)
@@ -68,13 +68,8 @@ class JmxMixin(object):
wait_until(check_jmx_port_listening, timeout_sec=30, backoff_sec=.1,
err_msg="%s: Never saw JMX port for %s start listening" %
(node.account, self))
-
- # To correctly wait for requested JMX metrics to be added we need the
--wait option for JmxTool. This option was
- # not added until 0.11.0.1, so any earlier versions need to use
JmxTool from a newer version.
- use_jmxtool_version = get_version(node)
- if use_jmxtool_version <= V_0_11_0_0:
- use_jmxtool_version = DEV_BRANCH
- cmd = "%s %s " % (self.path.script("kafka-run-class.sh",
use_jmxtool_version), self.jmx_class_name())
+ use_jmxtool_version = self.jmxtool_version(node)
+ cmd = "%s %s " % (self.path.script("kafka-run-class.sh",
use_jmxtool_version), self.jmx_class_name(use_jmxtool_version))
cmd += "--reporting-interval %d --jmx-url
service:jmx:rmi:///jndi/rmi://127.0.0.1:%d/jmxrmi" % (self.jmx_poll_ms,
self.jmx_port)
cmd += " --wait"
for jmx_object_name in self.jmx_object_names:
@@ -140,8 +135,20 @@ class JmxMixin(object):
for node in self.nodes:
self.read_jmx_output(self.idx(node), node)
- def jmx_class_name(self):
- return "org.apache.kafka.tools.JmxTool"
+ def jmxtool_version(self, node):
+ # To correctly wait for requested JMX metrics to be added we need the
--wait option for JmxTool. This option was
+ # not added until 0.11.0.1, so any earlier versions need to use
JmxTool from a newer version.
+ version = get_version(node)
+ if version <= V_0_11_0_0:
+ return DEV_BRANCH
+ else:
+ return version
+
+ def jmx_class_name(self, version):
+ if version <= V_3_4_0:
+ return "kafka.tools.JmxTool"
+ else:
+ return "org.apache.kafka.tools.JmxTool"
class JmxTool(JmxMixin, KafkaPathResolverMixin):
"""