Fix malloc/free in nfs_kv_read/write
Test / buildenv (push) Successful in 9s
Details
Test / build (push) Successful in 3m9s
Details
Test / test_cas (push) Successful in 8s
Details
Test / make_test (push) Successful in 34s
Details
Test / test_change_pg_count (push) Successful in 33s
Details
Test / test_change_pg_size (push) Successful in 8s
Details
Test / test_change_pg_count_ec (push) Successful in 34s
Details
Test / test_create_nomaxid (push) Successful in 6s
Details
Test / test_etcd_fail (push) Successful in 52s
Details
Test / test_add_osd (push) Successful in 2m38s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 2m47s
Details
Test / test_interrupted_rebalance_ec (push) Successful in 2m2s
Details
Test / test_interrupted_rebalance (push) Successful in 2m52s
Details
Test / test_failure_domain (push) Successful in 9s
Details
Test / test_minsize_1 (push) Successful in 14s
Details
Test / test_snapshot (push) Successful in 25s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m26s
Details
Test / test_snapshot_ec (push) Successful in 29s
Details
Test / test_move_reappear (push) Successful in 22s
Details
Test / test_rm (push) Successful in 16s
Details
Test / test_snapshot_down (push) Successful in 30s
Details
Test / test_snapshot_down_ec (push) Successful in 28s
Details
Test / test_splitbrain (push) Successful in 21s
Details
Test / test_snapshot_chain (push) Successful in 2m15s
Details
Test / test_snapshot_chain_ec (push) Successful in 2m54s
Details
Test / test_rebalance_verify_imm (push) Successful in 2m31s
Details
Test / test_rebalance_verify (push) Successful in 3m14s
Details
Test / test_switch_primary (push) Successful in 34s
Details
Test / test_write (push) Successful in 51s
Details
Test / test_write_xor (push) Successful in 51s
Details
Test / test_write_no_same (push) Successful in 13s
Details
Test / test_rebalance_verify_ec (push) Successful in 4m5s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 4m11s
Details
Test / test_heal_pg_size_2 (push) Successful in 3m39s
Details
Test / test_heal_ec (push) Successful in 3m37s
Details
Test / test_heal_csum_32k_dmj (push) Successful in 5m22s
Details
Test / test_heal_csum_32k_dj (push) Successful in 6m42s
Details
Test / test_heal_csum_32k (push) Successful in 6m52s
Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m50s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 56s
Details
Test / test_scrub (push) Successful in 59s
Details
Test / test_scrub_xor (push) Successful in 1m0s
Details
Test / test_heal_csum_4k_dj (push) Successful in 6m44s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m27s
Details
Test / test_scrub_pg_size_3 (push) Successful in 2m34s
Details
Test / test_scrub_ec (push) Successful in 47s
Details
Test / test_nfs (push) Successful in 22s
Details
Test / test_heal_csum_4k (push) Successful in 5m31s
Details
Test / buildenv (push) Successful in 9s
Details
Test / build (push) Successful in 3m9s
Details
Test / test_cas (push) Successful in 8s
Details
Test / make_test (push) Successful in 34s
Details
Test / test_change_pg_count (push) Successful in 33s
Details
Test / test_change_pg_size (push) Successful in 8s
Details
Test / test_change_pg_count_ec (push) Successful in 34s
Details
Test / test_create_nomaxid (push) Successful in 6s
Details
Test / test_etcd_fail (push) Successful in 52s
Details
Test / test_add_osd (push) Successful in 2m38s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 2m47s
Details
Test / test_interrupted_rebalance_ec (push) Successful in 2m2s
Details
Test / test_interrupted_rebalance (push) Successful in 2m52s
Details
Test / test_failure_domain (push) Successful in 9s
Details
Test / test_minsize_1 (push) Successful in 14s
Details
Test / test_snapshot (push) Successful in 25s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m26s
Details
Test / test_snapshot_ec (push) Successful in 29s
Details
Test / test_move_reappear (push) Successful in 22s
Details
Test / test_rm (push) Successful in 16s
Details
Test / test_snapshot_down (push) Successful in 30s
Details
Test / test_snapshot_down_ec (push) Successful in 28s
Details
Test / test_splitbrain (push) Successful in 21s
Details
Test / test_snapshot_chain (push) Successful in 2m15s
Details
Test / test_snapshot_chain_ec (push) Successful in 2m54s
Details
Test / test_rebalance_verify_imm (push) Successful in 2m31s
Details
Test / test_rebalance_verify (push) Successful in 3m14s
Details
Test / test_switch_primary (push) Successful in 34s
Details
Test / test_write (push) Successful in 51s
Details
Test / test_write_xor (push) Successful in 51s
Details
Test / test_write_no_same (push) Successful in 13s
Details
Test / test_rebalance_verify_ec (push) Successful in 4m5s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 4m11s
Details
Test / test_heal_pg_size_2 (push) Successful in 3m39s
Details
Test / test_heal_ec (push) Successful in 3m37s
Details
Test / test_heal_csum_32k_dmj (push) Successful in 5m22s
Details
Test / test_heal_csum_32k_dj (push) Successful in 6m42s
Details
Test / test_heal_csum_32k (push) Successful in 6m52s
Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m50s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 56s
Details
Test / test_scrub (push) Successful in 59s
Details
Test / test_scrub_xor (push) Successful in 1m0s
Details
Test / test_heal_csum_4k_dj (push) Successful in 6m44s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m27s
Details
Test / test_scrub_pg_size_3 (push) Successful in 2m34s
Details
Test / test_scrub_ec (push) Successful in 47s
Details
Test / test_nfs (push) Successful in 22s
Details
Test / test_heal_csum_4k (push) Successful in 5m31s
Details
parent
e2f59c3885
commit
e58554c298
|
@ -40,6 +40,7 @@ static void nfs_kv_continue_read(nfs_kv_read_state *st, int state)
|
|||
fprintf(stderr, "BUG: invalid state in nfs_kv_continue_read()");
|
||||
abort();
|
||||
}
|
||||
resume_0:
|
||||
if (st->offset + sizeof(shared_file_header_t) < st->self->parent->kvfs->shared_inode_threshold)
|
||||
{
|
||||
kv_read_inode(st->self, st->ino, [st](int res, const std::string & value, json11::Json attrs)
|
||||
|
@ -86,6 +87,7 @@ resume_1:
|
|||
read_size = st->ientry["size"].uint64_value();
|
||||
}
|
||||
read_size += sizeof(shared_file_header_t);
|
||||
assert(!st->aligned_buf);
|
||||
st->aligned_buf = (uint8_t*)malloc_or_die(read_size);
|
||||
st->buf = st->aligned_buf + sizeof(shared_file_header_t) + st->offset;
|
||||
st->op->iov.push_back(st->aligned_buf, read_size);
|
||||
|
@ -107,6 +109,8 @@ resume_1:
|
|||
resume_2:
|
||||
if (st->res < 0)
|
||||
{
|
||||
free(st->aligned_buf);
|
||||
st->aligned_buf = NULL;
|
||||
auto cb = std::move(st->cb);
|
||||
cb(st->res);
|
||||
return;
|
||||
|
@ -118,8 +122,7 @@ resume_2:
|
|||
free(st->aligned_buf);
|
||||
st->aligned_buf = NULL;
|
||||
st->allow_cache = false;
|
||||
nfs_kv_continue_read(st, 0);
|
||||
return;
|
||||
goto resume_0;
|
||||
}
|
||||
auto cb = std::move(st->cb);
|
||||
cb(0);
|
||||
|
@ -128,6 +131,7 @@ resume_2:
|
|||
}
|
||||
st->aligned_offset = align_down(st->offset);
|
||||
st->aligned_size = align_up(st->offset+st->size) - st->aligned_offset;
|
||||
assert(!st->aligned_buf);
|
||||
st->aligned_buf = (uint8_t*)malloc_or_die(st->aligned_size);
|
||||
st->buf = st->aligned_buf + st->offset - st->aligned_offset;
|
||||
st->op = new cluster_op_t;
|
||||
|
@ -145,6 +149,11 @@ resume_2:
|
|||
st->self->parent->cli->execute(st->op);
|
||||
return;
|
||||
resume_3:
|
||||
if (st->res < 0)
|
||||
{
|
||||
free(st->aligned_buf);
|
||||
st->aligned_buf = NULL;
|
||||
}
|
||||
auto cb = std::move(st->cb);
|
||||
cb(st->res < 0 ? st->res : 0);
|
||||
return;
|
||||
|
|
|
@ -305,7 +305,7 @@ static void nfs_do_shared_read(nfs_kv_write_state *st, int state)
|
|||
op->len = pre+sizeof(shared_file_header_t)+data_size+post;
|
||||
op->callback = [st, state](cluster_op_t *op)
|
||||
{
|
||||
st->res = op->retval == op->len ? 0 : op->retval;
|
||||
st->res = op->retval == op->len ? 0 : (op->retval > 0 ? -EIO : op->retval);
|
||||
delete op;
|
||||
if (st->shdr.magic != SHARED_FILE_MAGIC_V1 || st->shdr.inode != st->ino)
|
||||
{
|
||||
|
@ -316,7 +316,14 @@ static void nfs_do_shared_read(nfs_kv_write_state *st, int state)
|
|||
nfs_kv_continue_write(st, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (st->res < 0)
|
||||
{
|
||||
free(st->aligned_buf);
|
||||
st->aligned_buf = NULL;
|
||||
}
|
||||
nfs_kv_continue_write(st, state);
|
||||
}
|
||||
};
|
||||
st->self->parent->cli->execute(op);
|
||||
}
|
||||
|
@ -871,6 +878,11 @@ resume_10:
|
|||
nfs_do_unshare_write(st, 11);
|
||||
return;
|
||||
resume_11:
|
||||
if (st->aligned_buf)
|
||||
{
|
||||
free(st->aligned_buf);
|
||||
st->aligned_buf = NULL;
|
||||
}
|
||||
if (st->res < 0)
|
||||
{
|
||||
auto cb = std::move(st->cb);
|
||||
|
|
Loading…
Reference in New Issue