Agent crash in VrfEntry::GetUcRoute()
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Juniper Openstack | Status tracked in Trunk | |||||
R2.20 |
Fix Committed
|
High
|
Praveen | |||
Trunk |
Fix Committed
|
High
|
Praveen |
Bug Description
#1 0x00000000014d6f36 in VrfEntry:
at controller/
208
table = GetInet4Unicast
(gdb) up
#2 0x000000000166b248 in FlowTable:
entry=0x0, addr=...) at controller/
3225
rt = entry->
(gdb) up
#3 0x0000000001699bc6 in PktFlowInfo:
rt=
ref_
at controller/
69
*rt = flow_table-
(gdb) up
#4 0x000000000169d132 in PktFlowInfo:
0x4051d10, in=0x7f0732641750, out=0x7f0732641790)
at controller/
1124
(gdb) p out->vrf_
$1 = (const VrfEntry *) 0x0
(gdb) p *out
$7 = {_vptr.
vrf_ = 0x0, intf_ = 0x0, rt_ = 0x0, vn_ = 0x0, vm_ = 0x0, vlan_nh_ = false,
vlan_tag_ = 0, nh_ = 8}
(gdb) p nh->type_
$10 = NextHop::INTERFACE
(gdb) p nh->id_
$11 = 8
casting this to InterfaceNH
(gdb) p (InterfaceNH *) nh
$12 = (InterfaceNH *) 0x7f072c064850
(gdb) p $12->vrf_.px
$17 = (VrfEntry *) 0x7f072c05f070
(gdb) p $17->name_
$18 = "default-
Somehow out->intf_ is not set although the nexthop interface is:
(gdb) p $12->interface_
$29 = {px = 0x7f072c0645a0}
(gdb) p $12->interface_.px
$30 = (Interface *) 0x7f072c0645a0
(gdb) p $30->name_
$31 = "vgw"
Agent crashing when message is trapped for setup of egress flow with vgw interface as out-interface.
Agent ensures that egress flows are not trapped by configuration (uses policy disabled NH in MPLS Label and also the interface has policy disabled).
However, there are corner cases where packets can be trapped for egress flow setup,
1. Source-IP is in ECMP
2. Agent has setup forward flow, but before reverse flow is setup the reverse packet hits vrouter
Must fix agent to handle egress flows going out on vgw interface.