scylladb / scylla-cluster-tests

Tests for Scylla Clusters
GNU Affero General Public License v3.0
52 stars 83 forks source link

`append_scylla_args` in Jenkins jobs for SCT / longevity tests #7653

Open kbr-scylla opened 2 weeks ago

kbr-scylla commented 2 weeks ago

Sometimes it's useful to run SCT tests with additional parameters passed to Scylla -- for example, recently I asked @soyacz to reproduce certain failures while enabling higher-level logging for Raft by passing --logger-log-level raft=trace:raft_topology=trace:group0_raft_sm=trace to Scylla: https://github.com/scylladb/scylla-enterprise/issues/3820#issuecomment-2167699606, https://github.com/scylladb/scylladb/issues/18821#issuecomment-2165880053, IIUC @soyacz did it by modifying SCT on his fork and running the job with it.

Perhaps a good investment would be to extend the regular Jenkins jobs we use with something like APPEND_SCYLLA_ARGS parameter, which would then be passed to Scylla.

This would allow e.g. choosing a different set of loggers for which we enable higher logging levels for debugging some tough issues, not necessarily related to Raft. Or generally change the Scylla configuration however we want for certain runs.

fruch commented 1 week ago

the only problem with this one, is if the test was using this configuration, it wouldn't append to it as one might expect. we'll need to get it figured out, but regardless of that it would be useful option for jenkins pipelines

soyacz commented 1 week ago

maybe we could introduce scylla_logger_settings param? This should be appendable to append_scylla_args

fruch commented 1 week ago

maybe we could introduce scylla_logger_settings param? This should be appendable to append_scylla_args

logging is just an example, there could be more things one might want to enable from the command line, I don't think redefining all of them in SCT would be of much help.

we should make sure append_scylla_args is mergeable, and can be define multiple times, like we recently fixed append_scylla_yaml

it's a bit more trick, since we'll need to flush out duplications (we have such code in ccm)

soyacz commented 1 week ago

'mergable' will work on .yaml configs level (we should do it), but I don't see how it could work with jenkins where we pass params with env variables that override config. pipeline_append_scylla_args could be used to indicate we append to ones generated by params.