Hi,
Can I ask a newbie question?
In order to verify a crash problem of ceph-mgr in our clusters, I managed to build
binaries of latest Nautilus branch. I invoked do_cmake.sh with arguments
-DCMAKE_BUILD_TYPE=Release, and the build is successful. Then I copied the ceph-mgr and
libceph-common.so.0 into the old container to replace the old binaries (14.2.9), ceph-mgr
crashed with the following log:
(ceph-mgr)[root@control /]# /usr/local/bin/ceph-mgr -i control
/root/ceph/src/common/config_proxy.h: In function 'void
ConfigProxy::call_gate_enter(ConfigProxy::md_config_obs_t*)' thread 7fc51e91ecc0 time
2020-04-29 09:51:51.741274
/root/ceph/src/common/config_proxy.h: 65: FAILED ceph_assert(p != obs_call_gate.end())
ceph version IT-NOTFOUND (43cb7d6521292b032e0238a01bb414622df184d2) nautilus (stable)
1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x14a)
[0x7fc515b8afa5]
2: (()+0x25416d) [0x7fc515b8b16d]
3: (ConfigProxy::call_gate_enter(ceph::md_config_obs_impl<ConfigProxy>*)+0x76)
[0x55b55fb98e40]
4: (ConfigProxy::map_observer_changes(ceph::md_config_obs_impl<ConfigProxy>*,
std::string const&, std::map<ceph::md_config_obs_impl<ConfigProxy>*,
std::set<std::string, std::less<std::string>, std::allocator<std::string>
>, std::less<ceph::md_config_obs_impl<ConfigProxy>*>,
std::allocator<std::pair<ceph::md_config_obs_impl<ConfigProxy>* const,
std::set<std::string, std::less<std::string>, std::allocator<std::string>
> > > >*)+0x11d) [0x55b55fb99325]
5: (ConfigProxy::_gather_changes(std::set<std::string, std::less<std::string>,
std::allocator<std::string> >&,
std::map<ceph::md_config_obs_impl<ConfigProxy>*, std::set<std::string,
std::less<std::string>, std::allocator<std::string> >,
std::less<ceph::md_config_obs_impl<ConfigProxy>*>,
std::allocator<std::pair<ceph::md_config_obs_impl<ConfigProxy>* const,
std::set<std::string, std::less<std::string>, std::allocator<std::string>
> > > >*,
std::ostream*)::{lambda(ceph::md_config_obs_impl<ConfigProxy>*, std::string
const&)#1}::operator()(ceph::md_config_obs_impl<ConfigProxy>*, std::string
const&) const+0x33) [0x55b55fb996c7]
6: (std::_Function_handler<void (ceph::md_config_obs_impl<ConfigProxy>*,
std::string const&), ConfigProxy::_gather_changes(std::set<std::string,
std::less<std::string>, std::allocator<std::string> >&,
std::map<ceph::md_config_obs_impl<ConfigProxy>*, std::set<std::string,
std::less<std::string>, std::allocator<std::string> >,
std::less<ceph::md_config_obs_impl<ConfigProxy>*>,
std::allocator<std::pair<ceph::md_config_obs_impl<ConfigProxy>* const,
std::set<std::string, std::less<std::string>, std::allocator<std::string>
> > > >*,
std::ostream*)::{lambda(ceph::md_config_obs_impl<ConfigProxy>*, std::string
const&)#1}>::_M_invoke(std::_Any_data const&,
ceph::md_config_obs_impl<ConfigProxy>*&&, std::string const&)+0x52)
[0x55b55fbac7a2]
7: (std::function<void (ceph::md_config_obs_impl<ConfigProxy>*, std::string
const&)>::operator()(ceph::md_config_obs_impl<ConfigProxy>*, std::string
const&) const+0x61) [0x55b55fbac6e3]
8: (void ObserverMgr<ceph::md_config_obs_impl<ConfigProxy>
>::for_each_change<ConfigProxy>(std::set<std::string,
std::less<std::string>, std::allocator<std::string> > const&,
ConfigProxy&, std::function<void (ceph::md_config_obs_impl<ConfigProxy>*,
std::string const&)>, std::ostream*)+0x1cb) [0x55b55fba330b]
9: (ConfigProxy::_gather_changes(std::set<std::string, std::less<std::string>,
std::allocator<std::string> >&,
std::map<ceph::md_config_obs_impl<ConfigProxy>*, std::set<std::string,
std::less<std::string>, std::allocator<std::string> >,
std::less<ceph::md_config_obs_impl<ConfigProxy>*>,
std::allocator<std::pair<ceph::md_config_obs_impl<ConfigProxy>* const,
std::set<std::string, std::less<std::string>, std::allocator<std::string>
> > > >*, std::ostream*)+0x76) [0x55b55fb99740]
10: (ConfigProxy::apply_changes(std::ostream*)+0x7c) [0x55b55fb9960e]
11: (global_pre_init(std::map<std::string, std::string, std::less<std::string>,
std::allocator<std::pair<std::string const, std::string> > > const*,
std::vector<char const*, std::allocator<char const*> >&, unsigned int,
code_environment_t, int)+0x483) [0x55b55fe34d95]
12: (global_init(std::map<std::string, std::string, std::less<std::string>,
std::allocator<std::pair<std::string const, std::string> > > const*,
std::vector<char const*, std::allocator<char const*> >&, unsigned int,
code_environment_t, int, char const*, bool)+0xb8) [0x55b55fe3504a]
13: (main()+0x1c3) [0x55b55fa0541a]
14: (__libc_start_main()+0xf5) [0x7fc51204c505]
15: (()+0x805c25) [0x55b55fa04c25]
Is there any other binaries or libraries should be copied also? Thank you.
BR,
Xu Yun