fix error handling when scan thread failed.

set chunk pool to fill to invoke copy threads when scan failed.
This commit is contained in:
Ryo Nakamura
2023-03-25 22:29:09 +09:00
parent 5ac0874621
commit 834407379d
2 changed files with 7 additions and 4 deletions

View File

@@ -427,16 +427,14 @@ void *mscp_scan_thread(void *arg)
list_splice_tail(&tmp, m->path_list.prev);
}
chunk_pool_set_filled(&m->cp);
mpr_info(m->msg_fp, "walk source path(s) done\n");
chunk_pool_set_filled(&m->cp);
m->ret_scan = 0;
return NULL;
err_out:
chunk_pool_set_filled(&m->cp);
m->ret_scan = -1;
mscp_stop_copy_thread(m);
return NULL;
}

View File

@@ -61,6 +61,11 @@ def test_single_copy(mscp, src_prefix, dst_prefix, src, dst):
src.cleanup()
dst.cleanup()
@pytest.mark.parametrize("src_prefix, dst_prefix", param_remote_prefix)
def test_failed_to_copy_nonexistent_file(mscp, src_prefix, dst_prefix):
src = "nonexistent_src"
dst = "nonexistent_dst"
run2ng([mscp, "-H", src_prefix + src, dst_prefix + dst])
param_double_copy = [
(File("src1", size = 1024 * 1024), File("src2", size = 1024 * 1024),