INTR(tree->get_stats, *t).unsafe_get();
}
if constexpr (TEST_SEASTORE) {
- logger().info("seastore replay insert begin");
restart();
tree->reload(NodeExtentManager::create_seastore(*tm));
- logger().info("seastore replay insert end");
}
{
// Note: create_weak_transaction() can also work, but too slow.
INTR(tree->get_stats, *t).unsafe_get();
}
if constexpr (TEST_SEASTORE) {
- logger().info("seastore replay erase-1 begin");
restart();
tree->reload(NodeExtentManager::create_seastore(*tm));
- logger().info("seastore replay erase-1 end");
}
{
auto t = create_read_transaction();
INTR(tree->get_stats, *t).unsafe_get();
}
if constexpr (TEST_SEASTORE) {
- logger().info("seastore replay erase-2 begin");
restart();
tree->reload(NodeExtentManager::create_seastore(*tm));
- logger().info("seastore replay erase-2 end");
}
{
auto t = create_read_transaction();
#include "crimson/os/seastore/async_cleaner.h"
#include "crimson/os/seastore/cache.h"
+#include "crimson/os/seastore/logging.h"
#include "crimson/os/seastore/transaction_manager.h"
#include "crimson/os/seastore/segment_manager/ephemeral.h"
#include "crimson/os/seastore/seastore.h"
virtual FuturizedStore::mount_ertr::future<> _mount() = 0;
void restart() {
+ LOG_PREFIX(EphemeralTestState::restart);
+ SUBINFO(test, "begin ...");
_teardown().get0();
destroy();
segment_manager->remount();
}
init();
_mount().handle_error(crimson::ct_error::assert_all{}).get0();
+ SUBINFO(test, "finish");
}
seastar::future<> tm_setup(
tm_make_config_t config = tm_make_config_t::get_test_segmented_journal()) {
+ LOG_PREFIX(EphemeralTestState::tm_setup);
+ SUBINFO(test, "begin with {} devices ...", get_num_devices());
tm_config = config;
segment_manager = segment_manager::create_test_ephemeral();
for (auto &sec_sm : secondary_segment_managers) {
}
init();
return _mount();
- }).handle_error(crimson::ct_error::assert_all{});
+ }).handle_error(
+ crimson::ct_error::assert_all{}
+ ).then([FNAME] {
+ SUBINFO(test, "finish");
+ });
}
seastar::future<> tm_teardown() {
- return _teardown().then([this] {
+ LOG_PREFIX(EphemeralTestState::tm_teardown);
+ SUBINFO(test, "begin");
+ return _teardown().then([this, FNAME] {
segment_manager.reset();
for (auto &sec_sm : secondary_segment_managers) {
sec_sm.reset();
}
rb_device.reset();
+ SUBINFO(test, "finish");
});
}
};