Project

General

Profile

Bug #10947

Updated by Loïc Dachary about 9 years ago

If crushtool takes too long and block the mon, an election will happen and the command will run again, indefinitely. 

 <pre> 
 zhuzha:~/ceph/ceph/src% PATH=$(pwd):$PATH ./vstart.sh 
 zhuzha:~/ceph/ceph/src% cat > crushtool 
 #!/bin/sh 
 sleep 10 
 exit 0 # success 
 ^D 
 zhuzha:~/ceph/ceph/src% ceph osd getcrushmap -o /tmp/map 
 got crush map from osdmap epoch 18 
 zhuzha:~/ceph/ceph/src% ceph osd setcrushmap -i /tmp/map 

 Hangs forever. In logs at that time: 

 zhuzha:~/ceph/ceph/src% fgrep 'preprocess_query mon_command({"prefix": "osd setcrushmap"}' out/mon.a.log |tail -5 
 2015-02-25 12:07:17.734768 7f9154604700 10 mon.a@0(leader).osd e23 preprocess_query mon_command({"prefix": "osd setcrushmap"} v 0) v1 from client.14102 172.18.128.29:0/1020924 
 2015-02-25 12:07:28.158111 7f9154604700 10 mon.a@0(leader).osd e23 preprocess_query mon_command({"prefix": "osd setcrushmap"} v 0) v1 from client.14102 172.18.128.29:0/1020924 
 2015-02-25 12:07:38.504739 7f9154604700 10 mon.a@0(leader).osd e23 preprocess_query mon_command({"prefix": "osd setcrushmap"} v 0) v1 from client.14102 172.18.128.29:0/1020924 
 2015-02-25 12:07:49.209307 7f9154604700 10 mon.a@0(leader).osd e24 preprocess_query mon_command({"prefix": "osd setcrushmap"} v 0) v1 from client.14102 172.18.128.29:0/1020924 
 2015-02-25 12:07:59.577932 7f9154604700 10 mon.a@0(leader).osd e24 preprocess_query mon_command({"prefix": "osd setcrushmap"} v 0) v1 from client.14102 172.18.128.29:0/1020924 
 </pre> 

Back