mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-04 22:13:19 +00:00
The test in its current form is invalid, as database::remove does removing the table's name from its listing as well as from the keyspace metadata, so it won't be found after that. That said, database::drop_column_family then proceeds to truncate and stop the table, after calling await_pending_ops, and the latter should indeed block on the lock taken by the test. This change modifies the test to create some sstables in the table's directory before starting the sstable_directory. Then, when executing "drop table" in the background, wait until the table is not found by db.find_column_family That would fail the test before this change. See https://jenkins.scylladb.com/job/scylla-enterprise/job/next/1442/artifact/testlog/x86_64_debug/sstable_directory_test.sstable_directory_test_table_lock_works.4720.log ``` INFO 2021-12-13 14:00:17,298 [shard 0] schema_tables - Dropping ks.cf id=00487bc0-5c1d-11ec-9e3b-a44f824027ae version=b10c4994-31c7-3f5a-9591-7fedb0273c82 test/boost/sstable_directory_test.cc(453): fatal error: in "sstable_directory_test_table_lock_works": unexpected exception thrown by table_ok.get() ``` A this point, the test verifies again that the sstables are still on disk (and no truncate happened), and only after drop completed, the table should not exist on disk. Signed-off-by: Benny Halevy <bhalevy@scylladb.com> Message-Id: <20211214104407.2225080-1-bhalevy@scylladb.com>