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
Attachment:
map.orig
Description: Binary data
_______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com