Ok, so the decompile error is because I didn't download the CRUSH map (found that out using hexdump), but I still can't compile an unmodified CRUSH map. [root@nodezz ~]# crushtool -d map.crush -o map [root@nodezz ~]# crushtool -c map -o map.crush map:105 error: parse error at '' For some reason it doesn't like the rack definition. I can move things around, like putting root before it and it always chokes on the first rack definition no matter which one it is. On Mon, Mar 23, 2015 at 12:53 PM, Robert LeBlanc <robert@xxxxxxxxxxxxx> wrote: > I was trying to decompile and edit the CRUSH map to adjust the CRUSH > rules. My first attempt created a map that would decompile, but I > could not recompile the CRUSH even if didn't modify it. When trying to > download the CRUSH fresh, now the decompile fails. > > [root@nodezz ~]# ceph osd getmap -o map.crush > got osdmap epoch 12792 > [root@nodezz ~]# crushtool -d map.crush -o map > terminate called after throwing an instance of 'ceph::buffer::malformed_input' > what(): buffer::malformed_input: bad magic number > *** Caught signal (Aborted) ** > in thread 7f889ed24780 > ceph version 0.93 (bebf8e9a830d998eeaab55f86bb256d4360dd3c4) > 1: crushtool() [0x4f4542] > 2: (()+0xf130) [0x7f889df97130] > 3: (gsignal()+0x39) [0x7f889cfd05c9] > 4: (abort()+0x148) [0x7f889cfd1cd8] > 5: (__gnu_cxx::__verbose_terminate_handler()+0x165) [0x7f889d8d49d5] > 6: (()+0x5e946) [0x7f889d8d2946] > 7: (()+0x5e973) [0x7f889d8d2973] > 8: (()+0x5eb9f) [0x7f889d8d2b9f] > 9: (CrushWrapper::decode(ceph::buffer::list::iterator&)+0x5b8) [0x523fa8] > 10: (main()+0x1e0e) [0x4ead4e] > 11: (__libc_start_main()+0xf5) [0x7f889cfbcaf5] > 12: crushtool() [0x4ee5a9] > 2015-03-23 12:46:34.637635 7f889ed24780 -1 *** Caught signal (Aborted) ** > in thread 7f889ed24780 > > ceph version 0.93 (bebf8e9a830d998eeaab55f86bb256d4360dd3c4) > 1: crushtool() [0x4f4542] > 2: (()+0xf130) [0x7f889df97130] > 3: (gsignal()+0x39) [0x7f889cfd05c9] > 4: (abort()+0x148) [0x7f889cfd1cd8] > 5: (__gnu_cxx::__verbose_terminate_handler()+0x165) [0x7f889d8d49d5] > 6: (()+0x5e946) [0x7f889d8d2946] > 7: (()+0x5e973) [0x7f889d8d2973] > 8: (()+0x5eb9f) [0x7f889d8d2b9f] > 9: (CrushWrapper::decode(ceph::buffer::list::iterator&)+0x5b8) [0x523fa8] > 10: (main()+0x1e0e) [0x4ead4e] > 11: (__libc_start_main()+0xf5) [0x7f889cfbcaf5] > 12: crushtool() [0x4ee5a9] > NOTE: a copy of the executable, or `objdump -rdS <executable>` is > needed to interpret this. > > --- begin dump of recent events --- > -14> 2015-03-23 12:46:34.633547 7f889ed24780 5 asok(0x3229cc0) > register_command perfcounters_dump hook 0x322be00 > -13> 2015-03-23 12:46:34.633580 7f889ed24780 5 asok(0x3229cc0) > register_command 1 hook 0x322be00 > -12> 2015-03-23 12:46:34.633587 7f889ed24780 5 asok(0x3229cc0) > register_command perf dump hook 0x322be00 > -11> 2015-03-23 12:46:34.633596 7f889ed24780 5 asok(0x3229cc0) > register_command perfcounters_schema hook 0x322be00 > -10> 2015-03-23 12:46:34.633604 7f889ed24780 5 asok(0x3229cc0) > register_command 2 hook 0x322be00 > -9> 2015-03-23 12:46:34.633609 7f889ed24780 5 asok(0x3229cc0) > register_command perf schema hook 0x322be00 > -8> 2015-03-23 12:46:34.633615 7f889ed24780 5 asok(0x3229cc0) > register_command perf reset hook 0x322be00 > -7> 2015-03-23 12:46:34.633639 7f889ed24780 5 asok(0x3229cc0) > register_command config show hook 0x322be00 > -6> 2015-03-23 12:46:34.633654 7f889ed24780 5 asok(0x3229cc0) > register_command config set hook 0x322be00 > -5> 2015-03-23 12:46:34.633661 7f889ed24780 5 asok(0x3229cc0) > register_command config get hook 0x322be00 > -4> 2015-03-23 12:46:34.633672 7f889ed24780 5 asok(0x3229cc0) > register_command config diff hook 0x322be00 > -3> 2015-03-23 12:46:34.633685 7f889ed24780 5 asok(0x3229cc0) > register_command log flush hook 0x322be00 > -2> 2015-03-23 12:46:34.633698 7f889ed24780 5 asok(0x3229cc0) > register_command log dump hook 0x322be00 > -1> 2015-03-23 12:46:34.633711 7f889ed24780 5 asok(0x3229cc0) > register_command log reopen hook 0x322be00 > 0> 2015-03-23 12:46:34.637635 7f889ed24780 -1 *** Caught signal > (Aborted) ** > in thread 7f889ed24780 > > ceph version 0.93 (bebf8e9a830d998eeaab55f86bb256d4360dd3c4) > 1: crushtool() [0x4f4542] > 2: (()+0xf130) [0x7f889df97130] > 3: (gsignal()+0x39) [0x7f889cfd05c9] > 4: (abort()+0x148) [0x7f889cfd1cd8] > 5: (__gnu_cxx::__verbose_terminate_handler()+0x165) [0x7f889d8d49d5] > 6: (()+0x5e946) [0x7f889d8d2946] > 7: (()+0x5e973) [0x7f889d8d2973] > 8: (()+0x5eb9f) [0x7f889d8d2b9f] > 9: (CrushWrapper::decode(ceph::buffer::list::iterator&)+0x5b8) [0x523fa8] > 10: (main()+0x1e0e) [0x4ead4e] > 11: (__libc_start_main()+0xf5) [0x7f889cfbcaf5] > 12: crushtool() [0x4ee5a9] > NOTE: a copy of the executable, or `objdump -rdS <executable>` is > needed to interpret this. > > --- logging levels --- > 0/ 5 none > 0/ 1 lockdep > 0/ 1 context > 1/ 1 crush > 1/ 5 mds > 1/ 5 mds_balancer > 1/ 5 mds_locker > 1/ 5 mds_log > 1/ 5 mds_log_expire > 1/ 5 mds_migrator > 0/ 1 buffer > 0/ 1 timer > 0/ 1 filer > 0/ 1 striper > 0/ 1 objecter > 0/ 5 rados > 0/ 5 rbd > 0/ 5 rbd_replay > 0/ 5 journaler > 0/ 5 objectcacher > 0/ 5 client > 0/ 5 osd > 0/ 5 optracker > 0/ 5 objclass > 1/ 3 filestore > 1/ 3 keyvaluestore > 1/ 3 journal > 0/ 5 ms > 1/ 5 mon > 0/10 monc > 1/ 5 paxos > 0/ 5 tp > 1/ 5 auth > 1/ 5 crypto > 1/ 1 finisher > 1/ 5 heartbeatmap > 1/ 5 perfcounter > 1/ 5 rgw > 1/10 civetweb > 1/ 5 javaclient > 1/ 5 asok > 1/ 1 throttle > 0/ 0 refs > 1/ 5 xio > -2/-2 (syslog threshold) > 99/99 (stderr threshold) > max_recent 500 > max_new 1000 > log_file > --- end dump of recent events --- > Aborted > > map.orig is the first map that would not compile even without edits. > map.crush is the file that would not decompile. > > Any ideas?
Attachment:
map.crush
Description: Binary data
_______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com