void boost::intrusive::list_impl<boost::intrusive::listopt<boost::intrusive::detail::member_hook_traits<Path, boost::intrusive::list_member_hook<boost::intrusive::none, boost::intrusive::none, boost::intrusive::none>, &Path::node_>, unsigned long, true> >::sort<bool (*)(Path const&, Path const&)>(bool (*)(Path const&, Path const&)) ()
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Juniper Openstack | Status tracked in Trunk | |||||
R2.20 |
Fix Committed
|
High
|
Prabhjot Singh Sethi | |||
R2.21.x |
Fix Committed
|
High
|
Prabhjot Singh Sethi | |||
R2.22.x |
Fix Committed
|
High
|
Prabhjot Singh Sethi | |||
Trunk |
Fix Committed
|
High
|
Prabhjot Singh Sethi |
Bug Description
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_
Core was generated by `/usr/bin/
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f464ca1c6f0 in ?? ()
(gdb) bt
#0 0x00007f464ca1c6f0 in ?? ()
#1 0x0000000000d09504 in void boost::
#2 0x0000000000d09368 in Route::Sort(bool (*)(Path const&, Path const&), Path const*) ()
#3 0x000000000084e865 in AgentRoute:
#4 0x000000000084f328 in AgentRouteTable
#5 0x00000000008502d8 in AgentRouteTable
#6 0x0000000000862021 in EvpnAgentRouteT
#7 0x000000000094f358 in OvsPeer:
#8 0x00000000009a27cd in OVSDB::
#9 0x00000000009a35a8 in OVSDB::
#10 0x00000000009a640f in QueueTaskRunner
#11 0x0000000000e15df0 in TaskImpl::execute() ()
#12 0x00007f46ad2d8b3a in ?? () from /usr/lib/
#13 0x00007f46ad2d4816 in ?? () from /usr/lib/
#14 0x00007f46ad2d3f4b in ?? () from /usr/lib/
#15 0x00007f46ad2d00ff in ?? () from /usr/lib/
#16 0x00007f46ad2d02f9 in ?? () from /usr/lib/
#17 0x00007f46ad4f4182 in start_thread (arg=0x7f46a518
#18 0x00007f46ac7cd47d in clone () at ../sysdeps/
(gdb) quit
root@openc-
Package Version Build-ID | Repo | Package Name
-------
contrail-
contrail-
contrail-lib 2.21.1-22 22
contrail-nodemgr 2.21.1-22 22
contrail-nova-vif 2.21.1-22 22
contrail-setup 2.21.1-22 22
contrail-utils 2.21.1-22 22
contrail-
contrail-
contrail-
contrail-
contrail-
python-contrail 2.21.1-22 22
python-
python-
python-nova 1:2014.
python-
Changed in juniperopenstack: | |
assignee: | nobody → Hari Prasad Killi (haripk) |
milestone: | none → r3.0-fcs |
tags: | added: vrouter |
information type: | Proprietary → Public |
issue happened due to agent route modification from two threads at the same time one in context of "Agent: :RouteWalker" and other in context of "Agent::KSync", both of them trying to manage there paths in the same route for dynamic router peer.
before removal of path there was a previous front pointing to BGP path which got removed before calling sort on the pending path list.
This parallel access currently happens only when OVS and BGP connection is down at the same time.
#4 0x000000000084e865 in AgentRoute: :RemovePath (this=0x7f4644d 07580, path=0x7f46245d 2850) at controller/ src/vnsw/ agent/oper/ agent_route. cc:559 src/vnsw/ agent/oper/ agent_route. cc: No such file or directory. boost:: intrusive: :detail: :generic_ hook<boost: :intrusive: :get_list_ node_algo< void*>, boost:: intrusive: :member_ tag, (boost: :intrusive: :link_mode_ type)1, 0>> = {
<boost: :intrusive: :detail: :no_default_ definer> = {<No data fields>},
<boost: :intrusive: :list_node< void*>> = { stamp_usecs_ = 1455067642637189 std::allocator< char>> = {
<__gnu_ cxx::new_ allocator< char>> = {<No data fields>}, <No data fields>}, string< char, std::char_ traits< char>, std::allocator< char> >::_Alloc_hider: domain: commonmax: commonmax- vn31-001" :_Vector_ base<int, std::allocator<int> >> = {
<std:: allocator< int>> = {
<__gnu_ cxx::new_ allocator< int>> = {<No data fields>}, <No data fields>}, base<int, std::allocator<int> >::_Vector_impl:
_M_end_ of_storage = 0x0 std::allocator< char>> = {
<__gnu_ cxx::new_ allocator< char>> = {<No data fields>}, <No data fields>}, string< char, std::char_ traits< char>, std::allocator< char> >::_Alloc_hider: :_Rep:: _S_empty_ rep_storage@ @GLIBCXX_ 3.4+24> "" discard_ = false, boost:: intrusive: :detail: :generic_ hook<boost: :intrusive: :get_list_ node_algo< void*>, boost:: intrusive: :member_ tag, (boost: :intrusive: :link_mode_ type)1, 0>> = {
<boost: :intrusive: :detail: :no_default_ definer> = {<No data fields>},
<boost: :intrusive: :list_node< void*>> = {
559 controller/
(gdb) p *path
$1 = (AgentPath) {
<Path> = {
_vptr.Path = 0xe36390 <vtable for AgentPath+16>,
node_ = {
<
next_ = 0x0,
prev_ = 0x0
}, <No data fields>}, <No data fields>},
time_
},
members of AgentPath:
peer_ = 0x7f4644002e90,
nh_ = {
px = 0x7f463001fa90
},
label_ = 4294967295,
vxlan_id_ = 6,
dest_vn_name_ = {
static npos = <optimized out>,
_M_dataplus = {
<
members of std::basic_
_M_p = 0x7f4694108c78 "default-
}
},
sync_ = false,
force_policy_ = false,
sg_list_ = {
<std:
_M_impl = {
members of std::_Vector_
_M_start = 0x0,
_M_finish = 0x0,
}
}, <No data fields>},
tunnel_dest_ = {
addr_ = {
s_addr = 688592812
}
},
tunnel_bmap_ = 8,
tunnel_type_ = TunnelType::VXLAN,
vrf_name_ = {
static npos = <optimized out>,
_M_dataplus = {
<
members of std::basic_
_M_p = 0x132a898 <std::string:
}
},
gw_ip_ = {
addr_ = {
s_addr = 0
}
},
unresolved_ = false,
is_stale_ = false,
is_subnet_
dependant_rt_ = {
node_ = {
<
next_ = 0x0,
pr...