contrail-query-engine crashed with following backtrace in solution test run
3.0-1,kilo.
core is in 10.84.5.112:/cs-shared/bugs/<bug-id>/
(gdb) bt
#0 0x00007fc25da7fcc9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007fc25da830d8 in __GI_abort () at abort.c:89
#2 0x00007fc25da78b86 in __assert_fail_base (
fmt=0x7fc25dbc9830 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
assertion=assertion@entry=0x6b2517 "IsObject()",
file=file@entry=0x6b2ae0 "build/include/rapidjson/document.h", line=line@entry=245,
function=function@entry=0x6d7de0 <rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> >::MemberBegin()::__PRETTY_FUNCTION__> "rapidjson::GenericValue<Encoding, Allocator>::Member* rapidjson::GenericValue<Encoding, Allocator>::MemberBegin() [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; rapi"...) at assert.c:92
#3 0x00007fc25da78c32 in __GI___assert_fail (assertion=0x6b2517 "IsObject()",
file=0x6b2ae0 "build/include/rapidjson/document.h", line=245,
function=0x6d7de0 <rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> >::MemberBegin()::__PRETTY_FUNCTION__> "rapidjson::GenericValue<Encoding, Allocator>::Member* rapidjson::GenericValue<Encoding, Allocator>::MemberBegin() [with Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; rapi"...) at assert.c:101
#4 0x00000000004ad74e in MemberBegin (this=0x7fc254697350) at build/include/rapidjson/document.h:245
#5 SelectQuery::process_query (this=0x7fc2280838c0) at controller/src/query_engine/select.cc:451
#6 0x0000000000493a68 in AnalyticsQuery::process_query (this=0x7fc22808f120)
at controller/src/query_engine/query.cc:973
#7 0x00000000004981d4 in QueryEngine::QueryExec (this=0x1eec550, handle=0x1f0db80, qp=..., chunk=9)
at controller/src/query_engine/query.cc:1458
#8 0x000000000043e09d in operator() (a3=9,
a2=<error reading variable: access outside bounds of object referenced via synthetic pointer>,
a1=0x1f0db80, p=0x1eec550, this=0x7fc2280920d0)
---Type <return> to continue, or q <return> to quit---
at /usr/include/boost/bind/mem_fn_template.hpp:393
#9 operator()<bool, boost::_mfi::mf3<bool, QueryEngine, void*, QueryEngine::QueryParams, unsigned int>, boost::_bi::list1<ExternalBase*&> > (a=<synthetic pointer>, f=..., this=0x7fc2280920e0)
at /usr/include/boost/bind/bind.hpp:447
#10 operator()<ExternalBase*> (a1=<synthetic pointer>, this=0x7fc2280920d0)
at /usr/include/boost/bind/bind_template.hpp:32
#11 boost::detail::function::function_obj_invoker1<boost::_bi::bind_t<bool, boost::_mfi::mf3<bool, QueryEngine, void*, QueryEngine::QueryParams, unsigned int>, boost::_bi::list4<boost::_bi::value<QueryEngine*>, boost::arg<1>, boost::_bi::value<QueryEngine::QueryParams>, boost::_bi::value<unsigned int> > >, bool, ExternalBase*>::invoke (function_obj_ptr=..., a0=0x1f0db80)
at /usr/include/boost/function/function_template.hpp:132
#12 0x0000000000441a01 in operator() (a0=0x1f0db80, this=0x7fc254697b40)
at /usr/include/boost/function/function_template.hpp:767
#13 WorkProcessor<QEOpServerProxy::QEOpServerImpl::Input, QEOpServerProxy::QEOpServerImpl::Stage0Out, std::pair<QEOpServerProxy::QPerfInfo, std::pair<boost::shared_ptr<std::vector<std::pair<std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >, boost::shared_ptr<QueryResultMetaData> >, std::allocator<std::pair<std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >, boost::shared_ptr<QueryResultMetaData> > > > >, boost::shared_ptr<std::multimap<std::vector<boost::variant<boost::blank, std::string, unsigned long, double, boost::uuids::uuid, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, std::allocator<boost::variant<boost::blank, std::string, unsigned long, double, bo---Type <return> to continue, or q <return> to quit---
ost::uuids::uuid, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > >, std::pair<std::map<std::string, boost::variant<boost::blank, std::string, unsigned long, double, boost::uuids::uuid, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, std::less<std::string>, std::allocator<std::pair<std::string const, boost::variant<boost::blank, std::string, unsigned long, double, boost::uuids::uuid, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > > >, std::map<std::pair<QEOpServerProxy::AggOper, std::string>, boost::variant<boost::blank, std::string, unsigned long, double, boost::uuids::uuid, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, std::less<std::pair<QEOpServerProxy::AggOper, std::string> >, std::allocator<std::pair<std::pair<QEOpServerProxy::AggOper, std::string> const, boost::variant<boost::blank, std::string, unsigned long, double, boost::uuids::uuid, boost::detail::v---Type <return> to continue, or q <return> to quit---
ariant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > > > >, std::less<std::vector<boost::variant<boost::blank, std::string, unsigned long, double, boost::uuids::uuid, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, std::allocator<boost::variant<boost::blank, std::string, unsigned long, double, boost::uuids::uuid, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > > >, std::allocator<std::pair<std::vector<boost::variant<boost::blank, std::string, unsigned long, double, boost::uuids::uuid, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, std::allocator<boost::variant<boost::blank, std::string, unsigned long, double, boost::uuids::uuid, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::deta---Type <return> to continue, or q <return> to quit---
il::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > > const, std::pair<std::map<std::string, boost::variant<boost::blank, std::string, unsigned long, double, boost::uuids::uuid, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, std::less<std::string>, std::allocator<std::pair<std::string const, boost::variant<boost::blank, std::string, unsigned long, double, boost::uuids::uuid, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > > >, std::map<std::pair<QEOpServerProxy::AggOper, std::string>, boost::variant<boost::blank, std::string, unsigned long, double, boost::uuids::uuid, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_>, std::less<std::pair<QEOpServerProxy::AggOper, std::string> >, std::allocator<std::pair<std::pair<QEOpServerProxy::AggOper, std::string> const, boost::variant<boost::blank, std::string, unsigned long, double, boost::uuids::uuid, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::d---Type <return> to continue, or q <return> to quit---
etail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> > > > > > > > > > > >::Runner (this=0x1f0db80) at controller/src/base/work_processor-inl.h:116
#14 0x0000000000438539 in operator() (this=<optimized out>)
at /usr/include/boost/function/function_template.hpp:767
#15 PipelineWorker::Run (this=<optimized out>) at controller/src/base/work_processor-inl.h:27
#16 0x000000000069f9fc in TaskImpl::execute (this=0x7fc256a82d40) at controller/src/base/task.cc:253
#17 0x00007fc25e856b3a in ?? () from /usr/lib/libtbb.so.2
#18 0x00007fc25e852816 in ?? () from /usr/lib/libtbb.so.2
#19 0x00007fc25e851f4b in ?? () from /usr/lib/libtbb.so.2
#20 0x00007fc25e84e0ff in ?? () from /usr/lib/libtbb.so.2
#21 0x00007fc25e84e2f9 in ?? () from /usr/lib/libtbb.so.2
#22 0x00007fc25ea72182 in start_thread (arg=0x7fc254698700) at pthread_create.c:312
#23 0x00007fc25db4347d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
(gdb)
(gdb)
Program terminated with signal SIGABRT, Aborted. sysdeps/ unix/sysv/ linux/raise. c:56 sysdeps/ unix/sysv/ linux/raise. c: No such file or directory. :process_ query (this=0x7fc2280 838c0) at controller/ src/query_ engine/ select. cc:451 src/query_ engine/ select. cc: No such file or directory. :detail: :aligned_ storage: :aligned_ storage_ imp<32ul, 8ul>> = {data_ = { 177(\302\ 177\000\ 000\275\ 066\346c\ 274\353^ Cd\000\ 000\000\ 000\000\ 000\000\ 060\241\ 000(\302\ 177\000" , align_ = {<No data fields>}}}, static size = <optimized out>, static alignment = <optimized out>}}, { :detail: :aligned_ storage: :aligned_ storage_ imp<32ul, 8ul>> = {data_ = {buf = "\024:` \211f{H\ 266\265e\ 331䔉\275] ", '\000' <repeats 15 times>, align_ = {<No data fields>}}}, s\":\"csol1- node11\ ",\"cpu_ info.cpu_ share|d\ ":inf,\ "cpu_info. mem_res| n\":0,\ "cpu_info. mem_virt| n\":32703, \"cpu_info. one_min_ cpuload| d\":6.9397e- 310,\"cpu_ info.used_ sys_mem| n\":1545655913, \"name| s\":\"csol1- n"... :GenericValue< rapidjson: :UTF8<char> , rapidjson: :MemoryPoolAllo cator<rapidjson ::CrtAllocator> >> = {static kDefaultArrayCa pacity = <optimized out>, static kDefaultObjectC apacity = <optimized out>, data_ = {s = { \302\177" , length = 7, hashcode = 7}, n = {i = {i = 675603264, padding = "\302\177\000"}, u = {u = 675603264, padding2 = "\302\177\000"}, i64 = 140471875986240, u64 = 140471875986240, 157e-310} , o = {members = 0x7fc22844e340, size = 7, capacity = 7}, a = {elements = 0x7fc22844e340, size = 7, capacity = 7}}, flags_ = 0}, static kDefaultStackCa pacity = <optimized out>, stack_ = { s\":\"csol1- node11\ ",\"cpu_ info.cpu_ share|d\ ":inf,\ "cpu_info. mem_res| n\":0,\ "cpu_info. mem_virt| n\":32703, \"cpu_info. one_min_ cpuload| d\":6.9397e- 310,\"cpu_ info.used_ sys_mem| n\":1545655913, \"name| s\":\"csol1- node11\ "}"
#0 0x00007fc25da7fcc9 in __GI_raise (sig=sig@entry=6) at ../nptl/
56 ../nptl/
(gdb) fr 5
#5 SelectQuery:
451 controller/
(gdb) p it
$1 = {timestamp = 1456238548036787, info = std::vector of length 2, capacity 2 = {{which_ = 1, storage_ = {<boost:
buf = "\250\060\
which_ = 4, storage_ = {<boost:
static size = <optimized out>, static alignment = <optimized out>}}}}
(gdb) p json_string
$2 = "{\"Source|
(gdb) p d
$3 = {<rapidjson:
str = 0x7fc22844e340 "\230\342D(
d = 6.9402328131673
allocator_ = 0x7fc228003150, own_allocator_ = 0x7fc228003150, stack_ = 0x7fc22844de98 "", stack_top_ = 0x7fc22844de98 "", stack_end_ = 0x7fc22844e298 "Source|s", stack_capacity_ = 1024},
parseError_ = 0x6cae30 "Expect a value here.", errorOffset_ = 50}
(gdb) set print elements 0
(gdb) p json_string
$4 = "{\"Source|
(gdb) p d.parseError_
$5 = 0x6cae30 "Expect a value here."
The json_string is invalid => \"cpu_info. cpu_share| d\":inf
iterating the json document without checking for parse error resulted in crash.