This is an automated email from the ASF dual-hosted git repository.
ivandasch pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 1f238846c8b IGNITE-18936 [ducktests] Fix parsing of the control.sh
baseline command output and store JVM error file (#10575)
1f238846c8b is described below
commit 1f238846c8beb0d2d5a742eae85a55987313a99e
Author: Sergey Korotkov <[email protected]>
AuthorDate: Fri Mar 3 15:17:11 2023 +0700
IGNITE-18936 [ducktests] Fix parsing of the control.sh baseline command
output and store JVM error file (#10575)
---
.../ducktests/tests/ignitetest/services/utils/control_utility.py | 6 +++---
modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py | 3 ++-
modules/ducktests/tests/ignitetest/services/utils/jvm_utils.py | 9 +++++++--
3 files changed, 12 insertions(+), 6 deletions(-)
diff --git
a/modules/ducktests/tests/ignitetest/services/utils/control_utility.py
b/modules/ducktests/tests/ignitetest/services/utils/control_utility.py
index 10bcdee4adc..82eb2fcab96 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/control_utility.py
+++ b/modules/ducktests/tests/ignitetest/services/utils/control_utility.py
@@ -365,9 +365,9 @@ class ControlUtility:
def __parse_cluster_state(output):
state_pattern = re.compile("Cluster state: (?P<cluster_state>[^\\s]+)")
topology_pattern = re.compile("Current topology version:
(?P<topology_version>\\d+)")
- baseline_pattern =
re.compile("Consistent(Id|ID)=(?P<consistent_id>[^\\s]+)"
-
"(,\\sA(ddress|DDRESS)=(?P<address>[^\\s]+))?"
- ",\\sS(tate|TATE)=(?P<state>[^\\s]+)"
+ baseline_pattern =
re.compile("Consistent(Id|ID)=(?P<consistent_id>[^\\s,]+)"
+
"(,\\sA(ddress|DDRESS)=(?P<address>[^\\s,]+))?"
+ ",\\sS(tate|TATE)=(?P<state>[^\\s,]+)"
"(,\\sOrder=(?P<order>\\d+))?")
match = state_pattern.search(output)
diff --git a/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py
b/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py
index b82551491dc..b75c0aed02f 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py
+++ b/modules/ducktests/tests/ignitetest/services/utils/ignite_spec.py
@@ -97,7 +97,8 @@ class IgniteSpec(metaclass=ABCMeta):
Return a set of default JVM options.
"""
default_jvm_opts =
create_jvm_settings(gc_dump_path=os.path.join(self.service.log_dir, "gc.log"),
-
oom_path=os.path.join(self.service.log_dir, "out_of_mem.hprof"))
+
oom_path=os.path.join(self.service.log_dir, "out_of_mem.hprof"),
+
vm_error_path=os.path.join(self.service.log_dir, "hs_err_pid%p.log"))
default_jvm_opts = merge_jvm_settings(
default_jvm_opts, ["-DIGNITE_SUCCESS_FILE=" +
os.path.join(self.service.persistent_root, "success_file"),
diff --git a/modules/ducktests/tests/ignitetest/services/utils/jvm_utils.py
b/modules/ducktests/tests/ignitetest/services/utils/jvm_utils.py
index 0fccd871a75..5aa5adafcd5 100644
--- a/modules/ducktests/tests/ignitetest/services/utils/jvm_utils.py
+++ b/modules/ducktests/tests/ignitetest/services/utils/jvm_utils.py
@@ -28,7 +28,7 @@ JVM_PARAMS_GENERIC = "-server -XX:+DisableExplicitGC
-XX:+AlwaysPreTouch " \
def create_jvm_settings(heap_size=DEFAULT_HEAP, gc_settings=JVM_PARAMS_GC_G1,
generic_params=JVM_PARAMS_GENERIC,
- gc_dump_path=None, oom_path=None):
+ gc_dump_path=None, oom_path=None, vm_error_path=None):
"""
Provides settings string for JVM process.
param opts: JVM options to merge. Adds new or rewrites default values. Can
be list or string.
@@ -41,7 +41,12 @@ def create_jvm_settings(heap_size=DEFAULT_HEAP,
gc_settings=JVM_PARAMS_GC_G1, ge
if oom_path:
out_of_mem_dump = "-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="
+ oom_path
- as_string = f"-Xmx{heap_size} -Xms{heap_size} {gc_settings} {gc_dump}
{out_of_mem_dump} {generic_params}".strip()
+ vm_error_dump = ""
+ if vm_error_path:
+ vm_error_dump = "-XX:ErrorFile=" + vm_error_path
+
+ as_string = f"-Xmx{heap_size} -Xms{heap_size} {gc_settings} {gc_dump} " \
+ f"{out_of_mem_dump} {vm_error_dump} {generic_params}".strip()
return as_string.split()