Project

General

Profile

Bug #39174

Updated by Ken Dreyer about 5 years ago

On Fedora 29, Fedora 30, and RHEL 8, /usr/bin/crushmap crashes when trying to compile the map that Rook uses. 

 <pre> 
 #0    0x00007fffeecf053f in raise () from /lib64/libc.so.6 
 #1    0x00007fffeecda895 in abort () from /lib64/libc.so.6 
 #2    0x00007fffef71e7a8 in std::__replacement_assert(char const*, int, char const*, char const*) () from /usr/lib64/ceph/libceph-common.so.0 
 #3    0x00007fffef93a063 in std::vector<int, std::allocator<int> >::operator[](unsigned long) () from /usr/lib64/ceph/libceph-common.so.0 
 #4    0x00007fffefb882a5 in CrushCompiler::parse_bucket(__gnu_cxx::__normal_iterator<boost::spirit::tree_node<boost::spirit::node_val_data<char const*, boost::spirit::nil_t> >*, std::vector<boost::spirit::tree_node<boost::spirit::node_val_data<char const*, boost::spirit::nil_t> >, std::allocator<boost::spirit::tree_node<boost::spirit::node_val_data<char const*, boost::spirit::nil_t> > > > > const&) 
     () from /usr/lib64/ceph/libceph-common.so.0 
 #5    0x00007fffefb88ab0 in CrushCompiler::parse_crush(__gnu_cxx::__normal_iterator<boost::spirit::tree_node<boost::spirit::node_val_data<char const*, boost::spirit::nil_t> >*, std::vector<boost::spirit::tree_node<boost::spirit::node_val_data<char const*, boost::spirit::nil_t> >, std::allocator<boost::spirit::tree_node<boost::spirit::node_val_data<char const*, boost::spirit::nil_t> > > > > const&) 
     () from /usr/lib64/ceph/libceph-common.so.0 
 #6    0x00007fffefb8aee8 in CrushCompiler::compile(std::istream&, char const*) () 
    from /usr/lib64/ceph/libceph-common.so.0 
 #7    0x0000555555562e13 in main (argc=<optimized out>, argv=<optimized out>) 
     at /usr/include/c++/8/bits/basic_string.h:2290 

 </pre> 

 The crushmap.txt is: 

 <pre> 
 # begin crush map 
 tunable choose_local_tries 0 
 tunable choose_local_fallback_tries 0 
 tunable choose_total_tries 50 
 tunable chooseleaf_descend_once 1 
 tunable chooseleaf_vary_r 1 
 tunable chooseleaf_stable 0 
 tunable straw_calc_version 1 
 tunable allowed_bucket_algs 22 

 # types 
 type 0 osd 
 type 1 host 
 type 2 chassis 
 type 3 rack 
 type 4 row 
 type 5 pdu 
 type 6 pod 
 type 7 room 
 type 8 datacenter 
 type 9 region 
 type 10 root 

 # default bucket 
 root default { 
	 id -1     # do not change unnecessarily 
	 alg straw 
	 hash 0    # rjenkins1 
 } 

 # rules 
 rule replicated_ruleset { 
	 ruleset 0 
	 type replicated 
	 min_size 1 
	 max_size 10 
	 step take default 
	 step chooseleaf firstn 0 type host 
	 step emit 
 } 

 # end crush map 
 </pre> 

 This happens on ceph-base-12.2.11-1.fc29 and ceph-base-14.2.0-1.fc30 

Back