Fix write-over-delete failing for the very first entry in dirty_db
Test / buildenv (push) Successful in 12s
Details
Test / build (push) Successful in 3m15s
Details
Test / make_test (push) Successful in 38s
Details
Test / test_cas (push) Successful in 20s
Details
Test / test_change_pg_size (push) Successful in 10s
Details
Test / test_change_pg_count_ec (push) Successful in 1m4s
Details
Test / test_change_pg_count (push) Successful in 1m7s
Details
Test / test_create_nomaxid (push) Successful in 8s
Details
Test / test_add_osd (push) Successful in 2m28s
Details
Test / test_etcd_fail (push) Successful in 1m13s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 2m6s
Details
Test / test_interrupted_rebalance (push) Successful in 2m22s
Details
Test / test_failure_domain (push) Successful in 19s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m34s
Details
Test / test_snapshot (push) Successful in 36s
Details
Test / test_interrupted_rebalance_ec (push) Successful in 2m10s
Details
Test / test_minsize_1 (push) Successful in 17s
Details
Test / test_snapshot_ec (push) Successful in 38s
Details
Test / test_rm (push) Successful in 17s
Details
Test / test_snapshot_down (push) Failing after 27s
Details
Test / test_move_reappear (push) Failing after 53s
Details
Test / test_snapshot_down_ec (push) Failing after 27s
Details
Test / test_splitbrain (push) Successful in 25s
Details
Test / test_snapshot_chain (push) Successful in 2m28s
Details
Test / test_snapshot_chain_ec (push) Successful in 2m59s
Details
Test / test_rebalance_verify (push) Successful in 3m22s
Details
Test / test_rebalance_verify_imm (push) Successful in 3m21s
Details
Test / test_write (push) Successful in 42s
Details
Test / test_write_xor (push) Successful in 48s
Details
Test / test_write_no_same (push) Successful in 14s
Details
Test / test_rebalance_verify_ec (push) Successful in 4m41s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 5m8s
Details
Test / test_heal_pg_size_2 (push) Successful in 4m17s
Details
Test / test_heal_ec (push) Successful in 4m33s
Details
Test / test_heal_csum_32k_dmj (push) Successful in 5m23s
Details
Test / test_heal_csum_32k_dj (push) Successful in 6m18s
Details
Test / test_heal_csum_32k (push) Successful in 6m44s
Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m53s
Details
Test / test_scrub (push) Successful in 1m11s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 1m5s
Details
Test / test_scrub_xor (push) Successful in 1m1s
Details
Test / test_heal_csum_4k_dj (push) Successful in 6m58s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m2s
Details
Test / test_scrub_pg_size_3 (push) Successful in 1m41s
Details
Test / test_scrub_ec (push) Successful in 37s
Details
Test / test_heal_csum_4k (push) Successful in 6m4s
Details
Test / buildenv (push) Successful in 12s
Details
Test / build (push) Successful in 3m15s
Details
Test / make_test (push) Successful in 38s
Details
Test / test_cas (push) Successful in 20s
Details
Test / test_change_pg_size (push) Successful in 10s
Details
Test / test_change_pg_count_ec (push) Successful in 1m4s
Details
Test / test_change_pg_count (push) Successful in 1m7s
Details
Test / test_create_nomaxid (push) Successful in 8s
Details
Test / test_add_osd (push) Successful in 2m28s
Details
Test / test_etcd_fail (push) Successful in 1m13s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 2m6s
Details
Test / test_interrupted_rebalance (push) Successful in 2m22s
Details
Test / test_failure_domain (push) Successful in 19s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m34s
Details
Test / test_snapshot (push) Successful in 36s
Details
Test / test_interrupted_rebalance_ec (push) Successful in 2m10s
Details
Test / test_minsize_1 (push) Successful in 17s
Details
Test / test_snapshot_ec (push) Successful in 38s
Details
Test / test_rm (push) Successful in 17s
Details
Test / test_snapshot_down (push) Failing after 27s
Details
Test / test_move_reappear (push) Failing after 53s
Details
Test / test_snapshot_down_ec (push) Failing after 27s
Details
Test / test_splitbrain (push) Successful in 25s
Details
Test / test_snapshot_chain (push) Successful in 2m28s
Details
Test / test_snapshot_chain_ec (push) Successful in 2m59s
Details
Test / test_rebalance_verify (push) Successful in 3m22s
Details
Test / test_rebalance_verify_imm (push) Successful in 3m21s
Details
Test / test_write (push) Successful in 42s
Details
Test / test_write_xor (push) Successful in 48s
Details
Test / test_write_no_same (push) Successful in 14s
Details
Test / test_rebalance_verify_ec (push) Successful in 4m41s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 5m8s
Details
Test / test_heal_pg_size_2 (push) Successful in 4m17s
Details
Test / test_heal_ec (push) Successful in 4m33s
Details
Test / test_heal_csum_32k_dmj (push) Successful in 5m23s
Details
Test / test_heal_csum_32k_dj (push) Successful in 6m18s
Details
Test / test_heal_csum_32k (push) Successful in 6m44s
Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m53s
Details
Test / test_scrub (push) Successful in 1m11s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 1m5s
Details
Test / test_scrub_xor (push) Successful in 1m1s
Details
Test / test_heal_csum_4k_dj (push) Successful in 6m58s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m2s
Details
Test / test_scrub_pg_size_3 (push) Successful in 1m41s
Details
Test / test_scrub_ec (push) Successful in 37s
Details
Test / test_heal_csum_4k (push) Successful in 6m4s
Details
parent
93dc31f3fc
commit
5066e35a49
|
@ -289,14 +289,19 @@ int blockstore_impl_t::dequeue_write(blockstore_op_t *op)
|
|||
printf("Restoring %lx:%lx version: v%lu -> v%lu\n", op->oid.inode, op->oid.stripe, op->version, PRIV(op)->real_version);
|
||||
#endif
|
||||
auto prev_it = dirty_it;
|
||||
if (prev_it != dirty_db.begin())
|
||||
{
|
||||
prev_it--;
|
||||
if (prev_it->first.oid == op->oid && prev_it->first.version >= PRIV(op)->real_version)
|
||||
{
|
||||
// Original version is still invalid
|
||||
// All subsequent writes to the same object must be canceled too
|
||||
printf("Tried to write %lx:%lx v%lu after delete (old version v%lu), but already have v%lu\n",
|
||||
op->oid.inode, op->oid.stripe, PRIV(op)->real_version, op->version, prev_it->first.version);
|
||||
cancel_all_writes(op, dirty_it, -EEXIST);
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
op->version = PRIV(op)->real_version;
|
||||
PRIV(op)->real_version = 0;
|
||||
dirty_entry e = dirty_it->second;
|
||||
|
|
Loading…
Reference in New Issue