[ https://issues.apache.org/jira/browse/CASSANDRA-19446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ekaterina Dimitrova updated CASSANDRA-19446: -------------------------------------------- Reviewers: Brandon Williams (was: Brandon Williams, Ekaterina Dimitrova) > Test Failure: > dtest-offheap.snapshot_test.TestSnapshot.test_basic_snapshot_and_restore > -------------------------------------------------------------------------------------- > > Key: CASSANDRA-19446 > URL: https://issues.apache.org/jira/browse/CASSANDRA-19446 > Project: Cassandra > Issue Type: Bug > Components: CI > Reporter: Ekaterina Dimitrova > Assignee: Ekaterina Dimitrova > Priority: Low > Fix For: NA > > > Seen here: > [https://ci-cassandra.apache.org/job/Cassandra-5.0/173/testReport/junit/dtest-offheap.snapshot_test/TestSnapshot/test_basic_snapshot_and_restore/] > > {code:java} > Error Message > failed on teardown with "TypeError: not all arguments converted during string > formatting" > Stacktrace > request = <SubRequest 'fixture_dtest_setup' for <Function > test_basic_snapshot_and_restore>> > dtest_config = <dtest_config.DTestConfig object at 0x7f27a8053520> > fixture_dtest_setup_overrides = <dtest_setup_overrides.DTestSetupOverrides > object at 0x7f27a43a6550> > fixture_logging_setup = None, fixture_dtest_cluster_name = 'test' > fixture_dtest_create_cluster_func = <function DTestSetup.create_ccm_cluster > at 0x7f27a81a2790> > @pytest.fixture(scope='function', autouse=False) > def fixture_dtest_setup(request, > dtest_config, > fixture_dtest_setup_overrides, > fixture_logging_setup, > fixture_dtest_cluster_name, > fixture_dtest_create_cluster_func): > if running_in_docker(): > cleanup_docker_environment_before_test_execution() > > # do all of our setup operations to get the enviornment ready for the > actual test > # to run (e.g. bring up a cluster with the necessary config, populate > variables, etc) > initial_environment = copy.deepcopy(os.environ) > dtest_setup = DTestSetup(dtest_config=dtest_config, > > setup_overrides=fixture_dtest_setup_overrides, > cluster_name=fixture_dtest_cluster_name) > dtest_setup.initialize_cluster(fixture_dtest_create_cluster_func) > > if not dtest_config.disable_active_log_watching: > dtest_setup.begin_active_log_watch() > > # at this point we're done with our setup operations in this fixture > # yield to allow the actual test to run > yield dtest_setup > > # phew! we're back after executing the test, now we need to do > # all of our teardown and cleanup operations > > reset_environment_vars(initial_environment) > dtest_setup.jvm_args = [] > > for con in dtest_setup.connections: > con.cluster.shutdown() > dtest_setup.connections = [] > > failed = False > try: > if not dtest_setup.allow_log_errors: > errors = check_logs_for_errors(dtest_setup) > if len(errors) > 0: > failed = True > pytest.fail('Unexpected error found in node logs (see > stdout for full details). Errors: [{errors}]' > .format(errors=str.join(", ", errors)), > pytrace=False) > finally: > try: > # save the logs for inspection > if failed or not dtest_config.delete_logs: > > copy_logs(request, dtest_setup.cluster) > conftest.py:371: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > conftest.py:291: in copy_logs > shutil.copyfile(file, os.path.join(logdir, target_name)) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > src = > '/home/cassandra/cassandra/build/run-python-dtest.PRhg7u/dtest-pqe8_k2h/test/node1/logs/gc.log' > dst = 'logs/1708958581606_test_basic_snapshot_and_restore/node1_gc.log' > def copyfile(src, dst, *, follow_symlinks=True): > """Copy data from src to dst in the most efficient way possible. > > If follow_symlinks is not set and src is a symbolic link, a new > symlink will be created instead of copying the file it points to. > > """ > sys.audit("shutil.copyfile", src, dst) > > if _samefile(src, dst): > raise SameFileError("{!r} and {!r} are the same file".format(src, > dst)) > > file_size = 0 > for i, fn in enumerate([src, dst]): > try: > st = _stat(fn) > except OSError: > # File most likely does not exist > pass > else: > # XXX What about other special files? (sockets, devices...) > if stat.S_ISFIFO(st.st_mode): > fn = fn.path if isinstance(fn, os.DirEntry) else fn > raise SpecialFileError("`%s` is a named pipe" % fn) > if _WINDOWS and i == 0: > file_size = st.st_size > > if not follow_symlinks and _islink(src): > os.symlink(os.readlink(src), dst) > else: > > with open(src, 'rb') as fsrc, open(dst, 'wb') as fdst: > E FileNotFoundError: [Errno 2] No such file or directory: > '/home/cassandra/cassandra/build/run-python-dtest.PRhg7u/dtest-pqe8_k2h/test/node1/logs/gc.log' > /usr/lib/python3.8/shutil.py:264: FileNotFoundError > During handling of the above exception, another exception occurred: > request = <SubRequest 'fixture_dtest_setup' for <Function > test_basic_snapshot_and_restore>> > dtest_config = <dtest_config.DTestConfig object at 0x7f27a8053520> > fixture_dtest_setup_overrides = <dtest_setup_overrides.DTestSetupOverrides > object at 0x7f27a43a6550> > fixture_logging_setup = None, fixture_dtest_cluster_name = 'test' > fixture_dtest_create_cluster_func = <function DTestSetup.create_ccm_cluster > at 0x7f27a81a2790> > @pytest.fixture(scope='function', autouse=False) > def fixture_dtest_setup(request, > dtest_config, > fixture_dtest_setup_overrides, > fixture_logging_setup, > fixture_dtest_cluster_name, > fixture_dtest_create_cluster_func): > if running_in_docker(): > cleanup_docker_environment_before_test_execution() > > # do all of our setup operations to get the enviornment ready for the > actual test > # to run (e.g. bring up a cluster with the necessary config, populate > variables, etc) > initial_environment = copy.deepcopy(os.environ) > dtest_setup = DTestSetup(dtest_config=dtest_config, > > setup_overrides=fixture_dtest_setup_overrides, > cluster_name=fixture_dtest_cluster_name) > dtest_setup.initialize_cluster(fixture_dtest_create_cluster_func) > > if not dtest_config.disable_active_log_watching: > dtest_setup.begin_active_log_watch() > > # at this point we're done with our setup operations in this fixture > # yield to allow the actual test to run > yield dtest_setup > > # phew! we're back after executing the test, now we need to do > # all of our teardown and cleanup operations > > reset_environment_vars(initial_environment) > dtest_setup.jvm_args = [] > > for con in dtest_setup.connections: > con.cluster.shutdown() > dtest_setup.connections = [] > > failed = False > try: > if not dtest_setup.allow_log_errors: > errors = check_logs_for_errors(dtest_setup) > if len(errors) > 0: > failed = True > pytest.fail('Unexpected error found in node logs (see > stdout for full details). Errors: [{errors}]' > .format(errors=str.join(", ", errors)), > pytrace=False) > finally: > try: > # save the logs for inspection > if failed or not dtest_config.delete_logs: > copy_logs(request, dtest_setup.cluster) > except Exception as e: > > logger.error("Error saving log:", str(e)) > conftest.py:373: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > /usr/lib/python3.8/logging/__init__.py:1475: in error > self._log(ERROR, msg, args, **kwargs) > /usr/lib/python3.8/logging/__init__.py:1589: in _log > self.handle(record) > /usr/lib/python3.8/logging/__init__.py:1599: in handle > self.callHandlers(record) > /usr/lib/python3.8/logging/__init__.py:1661: in callHandlers > hdlr.handle(record) > /usr/lib/python3.8/logging/__init__.py:954: in handle > self.emit(record) > /usr/lib/python3.8/logging/__init__.py:1093: in emit > self.handleError(record) > /usr/lib/python3.8/logging/__init__.py:1085: in emit > msg = self.format(record) > /usr/lib/python3.8/logging/__init__.py:929: in format > return fmt.format(record) > /usr/lib/python3.8/logging/__init__.py:668: in format > record.message = record.getMessage() > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > self = <LogRecord: conftest, 40, /home/cassandra/cassandra-dtest/conftest.py, > 373, "Error saving log:"> > def getMessage(self): > """ > Return the message for this LogRecord. > > Return the message for this LogRecord after merging any user-supplied > arguments with the message. > """ > msg = str(self.msg) > if self.args: > > msg = msg % self.args > E TypeError: not all arguments converted during string formatting > /usr/lib/python3.8/logging/__init__.py:373: TypeError > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org