[
https://issues.apache.org/jira/browse/IGNITE-28932?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maksim Davydov updated IGNITE-28932:
------------------------------------
Labels: ise (was: )
> [ducktests] Make garbage collector selectable via globals
> ---------------------------------------------------------
>
> Key: IGNITE-28932
> URL: https://issues.apache.org/jira/browse/IGNITE-28932
> Project: Ignite
> Issue Type: Task
> Reporter: Maksim Davydov
> Assignee: Maksim Davydov
> Priority: Minor
> Labels: ise
>
> The garbage collector used by ducktest nodes is hardcoded to G1 in
> _jvm_utils.create_jvm_settings()_, whose _gc_settings_ parameter no caller
> ever passes - so comparing Ignite's behaviour under a different collector
> currently means editing that constant.
> Passing the collector through jvm_opts does not work either:
> _merge_jvm_settings() _overwrites per option, keyed on the substring before
> the first =, so '-XX:+UseG1GC' and '-XX:+UseZGC' are different keys and both
> survive the merge, producing a JVM that aborts at startup with 'Multiple
> garbage collectors selected'. GC selection is really mutually-exclusive group
> replacement - the collector and its tuning flags travel together - so it has
> to be chosen before the default option list is assembled rather than patched
> afterwards.
> The proposal is a gc global backed by a named profile registry (G1, PARALLEL,
> SERIAL, ZGC, SHENANDOAH), selectable independently for the server and client
> roles, with G1 remaining the default and conflicting selectors raising in
> Python instead of failing later in a remote JVM. This also fixes two latent
> issues it exposes: -XX:+UseStringDeduplication currently sits in the generic
> parameter block although it is G1-only through JDK 17, and CDC copies a
> server cluster's fully resolved option list into the client-role
> KafkaToIgniteService, which would put two collectors on one command line.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)