mc mirror reproduce stall under network packet loss - allanrogerr/public GitHub Wiki

Populate test data

mc rb --force source/versioned
mc mb source/versioned
mc rb --force target/versioned
mc mb target/versioned
mc version enable source/versioned
mc version enable target/versioned
mc cp --recursive ~/uuid source/versioned

Start mirror and trace; Observe stall. No activity on trace

mc mirror --watch --json source/versioned target/versioned
mc admin trace source

Cause network packet loss

for i in {1..5}; do echo $(( ( 10*$i ) )); sudo lxc exec mc-mirror-source -- sudo tc qdisc add dev eth0 root netem loss $(( ( 10*$i ) + 50 ))%; sleep $(( $i )); done
for i in {1..10}; do echo $(( 100 - ($i * 10) )); sudo lxc exec mc-mirror-source -- sudo tc qdisc add dev eth0 root netem loss $(( 100 - ($i * 10) ))%; sleep $(( $i )); done
sudo lxc exec mc-mirror-source -- sudo tc qdisc del dev eth0 root

Validate data

mc ls --recursive --summarize source/versioned | grep "Total"
mc ls --recursive --summarize target/versioned | grep "Total"
Total Size: 895 MiB
Total Objects: 896
Total Size: 0 B
Total Objects: 0