Test / test_rebalance_verify (push) Successful in 4m12sDetails
Test / test_write_no_same (push) Successful in 15sDetails
Test / test_write_xor (push) Successful in 52sDetails
Test / test_rebalance_verify_ec_imm (push) Successful in 4m29sDetails
Test / test_rebalance_verify_ec (push) Successful in 5m25sDetails
Test / test_heal_pg_size_2 (push) Successful in 4m10sDetails
Test / test_heal_ec (push) Successful in 4m46sDetails
Test / test_heal_csum_32k_dmj (push) Successful in 5m31sDetails
Test / test_heal_csum_32k_dj (push) Successful in 5m41sDetails
Test / test_heal_csum_32k (push) Successful in 6m41sDetails
Test / test_scrub (push) Successful in 1m13sDetails
Test / test_heal_csum_4k_dmj (push) Successful in 6m53sDetails
Test / test_scrub_xor (push) Successful in 54sDetails
Test / test_scrub_zero_osd_2 (push) Successful in 58sDetails
Test / test_heal_csum_4k_dj (push) Successful in 6m27sDetails
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m15sDetails
Test / test_scrub_pg_size_3 (push) Successful in 1m27sDetails
Test / test_heal_csum_4k (push) Successful in 6m20sDetails
Test / test_scrub_ec (push) Successful in 29sDetails
Test / test_move_reappear (push) Successful in 17sDetails
Also add protection from etcd watcher messages being split into multiple websocket
messages - I'm not sure if etcd actually does that, but it's better to have extra
protection anyway.
Also check that all etcd watchers are started in the keepalive routine, otherwise
it sometimes tries to revive etcd watchers starting with revision=1 which obviously
always fails because this revision is nearly always compacted.
All these changes should fix an old rarely reproduced bug where SOMETIMES OSDs
didn't react to PG config changes which was leading to offline pools on node reboot.
It happened on the full reload of state from etcd.
Return results and errors in a variable instead of just printing them,
separate vitastor-cli main() from cli_tool_t, move positional argument
parsing to CLI main from command implementations.
Each inode has: image name, parent inode number & pool, size and readonly flag
Snapshots are created by switching image name to a different inode number
while using the older inode as parent.
Previous implementation didn't respect write ordering and could lead
to corrupted data when restarting writes after an OSD outage
Also rework cluster_client queueing logic and add tests for it to verify the correct behaviour