]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crushtool: verify item pos
authorSage Weil <sage@newdream.net>
Mon, 6 Oct 2008 18:07:18 +0000 (11:07 -0700)
committerSage Weil <sage@newdream.net>
Mon, 6 Oct 2008 18:07:18 +0000 (11:07 -0700)
src/cm.txt
src/crushtool.cc

index eb8d00646acf0cdcdfa1cfdae31a8f7564830abf..8883e30b2151a1ba4e2a24cc44d4f7b7bbba484f 100644 (file)
@@ -27,30 +27,30 @@ type 2 pool
 domain dom0 {
        id -1           # do not change unnecessarily
        alg uniform     # do not change bucket size (4) unnecessarily
-       item device1 weight 1.000 pos 1
-       item device2 weight 1.000 pos 2
-       item device3 weight 1.000 pos 3
+       item device1 weight 1.000 pos 0
+       item device2 weight 1.000 pos 1
+       item device3 weight 1.000 pos 2
 }
 domain dom1 {
        id -2           # do not change unnecessarily
        alg uniform     # do not change bucket size (4) unnecessarily
-       item device5 weight 1.000 pos 1
-       item device6 weight 1.000 pos 2
-       item device7 weight 1.000 pos 3
+       item device5 weight 1.000 pos 0
+       item device6 weight 1.000 pos 1
+       item device7 weight 1.000 pos 2
 }
 domain dom2 {
        id -3           # do not change unnecessarily
        alg uniform     # do not change bucket size (4) unnecessarily
-       item device9 weight 1.000 pos 1
-       item device10 weight 1.000 pos 2
-       item device11 weight 1.000 pos 3
+       item device9 weight 1.000 pos 0
+       item device10 weight 1.000 pos 1
+       item device11 weight 1.000 pos 2
 }
 domain dom3 {
        id -4           # do not change unnecessarily
        alg uniform     # do not change bucket size (4) unnecessarily
-       item device13 weight 1.000 pos 1
-       item device14 weight 1.000 pos 2
-       item device15 weight 1.000 pos 3
+       item device13 weight 1.000 pos 0
+       item device14 weight 1.000 pos 1
+       item device15 weight 1.000 pos 2
 }
 pool root {
        id -5           # do not change unnecessarily
index 774313e3848219b2feac4cd20068569a0fe1e0e5..91bd029569fa4be0897cb38d78404a95e6d4d89f 100644 (file)
@@ -211,6 +211,10 @@ void parse_bucket(iter_t const& i, CrushWrapper &crush)
        else
          assert(0);
       }
+      if (pos >= size) {
+       cerr << "item '" << iname << "' in bucket '" << name << "' has pos " << pos << " >= size " << size << std::endl;
+       exit(1);
+      }
       if (pos < 0) {
        while (used_items.count(curpos)) curpos++;
        pos = curpos++;