Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee0bae573f | ||
|
|
27be4ee2fa | ||
|
|
00517e2bac | ||
|
|
e0a2615cbc |
@@ -98,6 +98,7 @@ add_executable(test_cluster_client
|
|||||||
pg_states.cpp osd_ops.cpp cluster_client.cpp cluster_client_list.cpp cluster_client_wb.cpp msgr_op.cpp ../test/mock/messenger.cpp msgr_stop.cpp
|
pg_states.cpp osd_ops.cpp cluster_client.cpp cluster_client_list.cpp cluster_client_wb.cpp msgr_op.cpp ../test/mock/messenger.cpp msgr_stop.cpp
|
||||||
etcd_state_client.cpp ../util/timerfd_manager.cpp ../util/addr_util.cpp ../util/str_util.cpp ../util/json_util.cpp ../../json11/json11.cpp
|
etcd_state_client.cpp ../util/timerfd_manager.cpp ../util/addr_util.cpp ../util/str_util.cpp ../util/json_util.cpp ../../json11/json11.cpp
|
||||||
)
|
)
|
||||||
|
target_link_libraries(test_cluster_client ${LIBURING_LIBRARIES})
|
||||||
target_compile_definitions(test_cluster_client PUBLIC -D__MOCK__)
|
target_compile_definitions(test_cluster_client PUBLIC -D__MOCK__)
|
||||||
target_include_directories(test_cluster_client BEFORE PUBLIC ${CMAKE_SOURCE_DIR}/src/test/mock)
|
target_include_directories(test_cluster_client BEFORE PUBLIC ${CMAKE_SOURCE_DIR}/src/test/mock)
|
||||||
add_dependencies(build_tests test_cluster_client)
|
add_dependencies(build_tests test_cluster_client)
|
||||||
|
|||||||
@@ -427,6 +427,9 @@ int main(int argc, char *argv[])
|
|||||||
self.dsk.open_journal();
|
self.dsk.open_journal();
|
||||||
self.dsk.calc_lengths();
|
self.dsk.calc_lengths();
|
||||||
self.dsk.close_all();
|
self.dsk.close_all();
|
||||||
|
self.new_meta_device = self.dsk.meta_device;
|
||||||
|
self.new_meta_offset = self.dsk.meta_offset;
|
||||||
|
self.new_meta_len = self.dsk.meta_area_size;
|
||||||
}
|
}
|
||||||
std::string json_err;
|
std::string json_err;
|
||||||
json11::Json meta = json11::Json::parse(read_all_fd(0), json_err);
|
json11::Json meta = json11::Json::parse(read_all_fd(0), json_err);
|
||||||
|
|||||||
@@ -589,6 +589,7 @@ int disk_tool_t::write_json_meta(json11::Json meta)
|
|||||||
|
|
||||||
int disk_tool_t::write_json_heap(json11::Json meta, json11::Json journal)
|
int disk_tool_t::write_json_heap(json11::Json meta, json11::Json journal)
|
||||||
{
|
{
|
||||||
|
assert(new_meta_len >= sizeof(blockstore_meta_header_v3_t));
|
||||||
new_meta_buf = (uint8_t*)memalign_or_die(MEM_ALIGNMENT, new_meta_len);
|
new_meta_buf = (uint8_t*)memalign_or_die(MEM_ALIGNMENT, new_meta_len);
|
||||||
memset(new_meta_buf, 0, new_meta_len);
|
memset(new_meta_buf, 0, new_meta_len);
|
||||||
new_meta_hdr = (blockstore_meta_header_v3_t *)new_meta_buf;
|
new_meta_hdr = (blockstore_meta_header_v3_t *)new_meta_buf;
|
||||||
@@ -606,9 +607,9 @@ int disk_tool_t::write_json_heap(json11::Json meta, json11::Json journal)
|
|||||||
: (meta["data_csum_type"].string_value() == "crc32c"
|
: (meta["data_csum_type"].string_value() == "crc32c"
|
||||||
? BLOCKSTORE_CSUM_CRC32C
|
? BLOCKSTORE_CSUM_CRC32C
|
||||||
: BLOCKSTORE_CSUM_NONE);
|
: BLOCKSTORE_CSUM_NONE);
|
||||||
|
new_meta_hdr->meta_area_size = new_meta_len;
|
||||||
new_meta_hdr->csum_block_size = meta["csum_block_size"].uint64_value();
|
new_meta_hdr->csum_block_size = meta["csum_block_size"].uint64_value();
|
||||||
new_meta_hdr->header_csum = crc32c(0, new_meta_hdr, sizeof(blockstore_meta_header_v3_t));
|
new_meta_hdr->header_csum = crc32c(0, new_meta_hdr, sizeof(blockstore_meta_header_v3_t));
|
||||||
new_meta_hdr->meta_area_size = new_meta_len;
|
|
||||||
new_clean_entry_bitmap_size = (new_meta_hdr->data_block_size / new_meta_hdr->bitmap_granularity + 7) / 8;
|
new_clean_entry_bitmap_size = (new_meta_hdr->data_block_size / new_meta_hdr->bitmap_granularity + 7) / 8;
|
||||||
new_clean_entry_size = 0;
|
new_clean_entry_size = 0;
|
||||||
new_entries_per_block = 0;
|
new_entries_per_block = 0;
|
||||||
|
|||||||
@@ -264,6 +264,11 @@ resume_12:
|
|||||||
{
|
{
|
||||||
pg.ver_override.erase(op_data->oid);
|
pg.ver_override.erase(op_data->oid);
|
||||||
mark_partial_write(pg, cur_op);
|
mark_partial_write(pg, cur_op);
|
||||||
|
if (op_data->subops)
|
||||||
|
{
|
||||||
|
delete[] op_data->subops;
|
||||||
|
op_data->subops = NULL;
|
||||||
|
}
|
||||||
pg_cancel_write_queue(pg, cur_op, op_data->oid, op_data->errcode);
|
pg_cancel_write_queue(pg, cur_op, op_data->oid, op_data->errcode);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -334,7 +339,6 @@ resume_12:
|
|||||||
}
|
}
|
||||||
resume_6:
|
resume_6:
|
||||||
resume_7:
|
resume_7:
|
||||||
op_data->n_subops = 0;
|
|
||||||
if (!remember_unstable_write(cur_op, pg, pg.cur_loc_set, 6))
|
if (!remember_unstable_write(cur_op, pg, pg.cur_loc_set, 6))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@@ -370,16 +374,21 @@ resume_7:
|
|||||||
);
|
);
|
||||||
recovery_stat[recovery_type].usec += usec;
|
recovery_stat[recovery_type].usec += usec;
|
||||||
}
|
}
|
||||||
if (immediate_commit == IMMEDIATE_ALL)
|
if (immediate_commit != IMMEDIATE_ALL)
|
||||||
|
{
|
||||||
|
// Do not delete anything, it will be deleted as part of copies_to_delete_after_sync
|
||||||
|
deref_object_state(pg, &op_data->object_state, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
submit_primary_del_subops(cur_op, pg.cur_set.data(), pg.pg_size, op_data->object_state->osd_set);
|
submit_primary_del_subops(cur_op, pg.cur_set.data(), pg.pg_size, op_data->object_state->osd_set);
|
||||||
}
|
deref_object_state(pg, &op_data->object_state, true);
|
||||||
deref_object_state(pg, &op_data->object_state, true);
|
if (op_data->n_subops > 0)
|
||||||
if (op_data->n_subops > 0)
|
{
|
||||||
{
|
|
||||||
resume_8:
|
resume_8:
|
||||||
op_data->st = 8;
|
op_data->st = 8;
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
resume_9:
|
resume_9:
|
||||||
if (op_data->errors > 0)
|
if (op_data->errors > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user