Date: Tue, 15 Mar 2016 12:41:15 +0100 From: Willem Jan Withagen <wjw@digiware.nl> To: toolchain@freebsd.org Subject: Crash in ostream <<operator Message-ID: <56E7F4DB.2000404@digiware.nl>
next in thread | raw e-mail | index | archive | help
Hi, While running Ceph tools I get a crash in fr 10 #10 0x00000000016d82ca in FileStore::omap_get_values(coll_t const&, ghobject_t const&, std::__1::set<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, ceph::buffer::list, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, ceph::buffer::list> > >*) () (gdb) l 95 int preload_erasure_code() 96 { 97 string plugins = g_conf->osd_erasure_code_plugins; 98 stringstream ss; 99 int r = ErasureCodePluginRegistry::instance().preload( 100 plugins, 101 g_conf->erasure_code_dir, 102 &ss); 103 if (r) 104 derr << ss.str() << dendl; (gdb) 105 else 106 dout(10) << ss.str() << dendl; 107 return r; 108 } 109 All of this seems to be inlined since I'm not able to get at ss or r #8 0x0000000000e16145 in std::__1::char_traits<char>::length (__s=0x0) at /usr/include/c++/v1/string:640 640 static inline size_t length(const char_type* __s) {return strlen(__s);} Looking at the strlen implementation in /usr/srcs/head/src/lib/libc/string/strlen.c shows that strlen does not take 0x0 as pointer, so when we get here with __s = 0x0 all is lost. So I tried running it through 3.7, but since this is in the libraries with the bintools/os, I'd expect both versions to crash on this. Now the question I have to solve: is it the compiler/toolset/libraries is it a bug in the ceph code. --WjW
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?56E7F4DB.2000404>