scylladb / scylla-ccm

Cassandra Cluster Manager, modified for Scylla
Apache License 2.0
22 stars 66 forks source link

scylla_node: populate env variable when running scylla-sstable #502

Closed tchaikov closed 1 year ago

tchaikov commented 1 year ago

if scylla is built in a dtest environment, and the shared libraries which it is linked against cannot be found in the testbed's default ld.so.conf paths, the tests which run scylla-sstable would fail.

so, in this change. let's apply the self._launch_env when running scylla-sstable as well. previously, these env variables are only applied when launching scylla as a daemon.

tchaikov commented 1 year ago

only for testing the CCM CI test using Nix.

tchaikov commented 1 year ago

tested using

$ scripts/dbuild_collect_so.sh ~/dev/scylladb/build/cmake/scylla /tmp/dynamic_libs_for_dtest
$ SCYLLA_DBUILD_SO_DIR=/tmp/dynamic_libs_for_dtest JAVA_HOME=/usr/lib/jvm/jre-11 pytest --cassandra-dir $HOME/dev/scylladb/build/cmake scylla_sstable_test.py::TestScyllaSstableDumpData::test_scylla_sstable_basic

not really a dbuild build. but i also verified by checking the env variables manually.

fruch commented 1 year ago

I'll for @bhalevy to confirm, as the one that was hit by this issue, to validate it's solving it

tchaikov commented 1 year ago

I'll for @bhalevy to confirm, as the one that was hit by this issue, to validate it's solving it

@fruch Israel, Benny approved a superset of this change. see #501. but it introduced a regression identified by the ccm's own unit tests. so i abandoned it.

bhalevy commented 1 year ago

if scylla is built in a dtest environment,

nit: s/dtest/dbuild/

and the shared libraries which it is linked against cannot be found in the testbed's default ld.so.conf paths, the tests which run scylla-sstable would fail.

so, in this change. let's apply the self._launch_env when running scylla-sstable as well. previously, these env variables are only applied when launching scylla as a daemon.