an overflow entry did not get deleted correctly

Bug #1522765 reported by Vedamurthy Joshi
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R2.20
Fix Committed
High
Divakar Dharanalakota
Trunk
Fix Committed
High
Divakar Dharanalakota

Bug Description

R2.20 Build 111 Ubuntu 14.04 Juno multinode

There were hundreds of thousands of flows on nodek1 when agent was restarted.
It seems to have resulted in one of the overflow entries not getting deleted cleanly .

flow -l output:
===============
Flow table(size 537919488, entries 4202496)

Entries: Created 193348 Added 193348 Processed 193348 Used Overflow entries 28 <<<<<<
(Created Flows/CPU: 0 0 0 0 0 0 0 0 20838 21168 22593 20592 20229 25378 22884 22231 0 0 0 0 0 0 0 0 2192 2081 2568 2117 1836 2389 2045 2207)(oflows 0)

Action:F=Forward, D=Drop N=NAT(S=SNAT, D=DNAT, Ps=SPAT, Pd=DPAT, L=Link Local Port)
 Other:K(nh)=Key_Nexthop, S(nh)=RPF_Nexthop, M=Mirror Index
 Flags:E=Evicted, Ec=Evict Candidate, N=New Flow, M=Modified
TCP(r=reverse):S=SYN, F=FIN, R=RST, C=HalfClose, E=Established, D=Dead

 Index Source:Port Destination:Port Proto(V)
-------------------------------------------------------------------------
311412<=>1959132 219.14.75.4:22 169.254.169.254:58461 6 (1->0)
(K(nh):28, Action:N(SD), Flags:, TCP:, S(nh):28, Stats:1120/201472, SPort:60236)

1959132<=>311412 10.204.216.221:58461 169.254.0.4:22 6 (0->1)
(K(nh):5, Action:N(SD), Flags:, TCP:, S(nh):5, Stats:790/41224, SPort:64565)

4194325->[4194315] <<<<<<<<<<<<<<
root@nodek1:~#

flow -l with show-evicted :
....
....
....
4171092 219.14.75.3:2200 219.14.75.4:10708 6 (1)
(K(nh):28, Action:D(Unknown), Flags:E, TCP:, S(nh):0, Stats:1/54, SPort:0)

4174736 219.14.75.4:10504 219.14.75.3:2200 6 (1)
(K(nh):28, Action:D(Unknown), Flags:E, TCP:, S(nh):0, Stats:1/54, SPort:0)

4175760 219.14.75.4:10509 219.14.75.3:2200 6 (1)
(K(nh):28, Action:D(Unknown), Flags:E, TCP:, S(nh):0, Stats:1/54, SPort:0)

4188340 219.14.75.4:10138 219.14.75.3:2200 6 (1)
(K(nh):28, Action:D(Unknown), Flags:E, TCP:, S(nh):0, Stats:1/54, SPort:0)

4193252 219.14.75.4:10053 219.14.75.3:2200 6 (1)
(K(nh):28, Action:D(Unknown), Flags:E, TCP:, S(nh):0, Stats:1/54, SPort:0)

4194325->[4194315]
~

Tags: vrouter
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R2.20

Review in progress for https://review.opencontrail.org/15631
Submitter: Divakar Dharanalakota (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/15631
Committed: http://github.org/Juniper/contrail-vrouter/commit/3aa9c3202a6822037788007bb57de87b2172af42
Submitter: Zuul
Branch: R2.20

commit 3aa9c3202a6822037788007bb57de87b2172af42
Author: Divakar <email address hidden>
Date: Sat Dec 5 15:12:22 2015 +0530

Not invalidating the overflow list while deleting bucket entry

As part of fix for Bug 1520614, this bug has been introduced, where the
next pointer from main hash entry is wrongly made NULL while deleting it,
leaving the over flow list non accessible. If this non accessible over
flow entry is also marked Deleted and if Agent issues a soft reset,
these entries are not processed any more as these are not accessible
from main bucket entry.

As a fix, the next pointer of bucket entry is not marked NULL

Change-Id: Id1cb9d885c2a2f6377aca4193dc70044d4c08c5c
closes-bug: #1522765

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/16368
Submitter: Divakar Dharanalakota (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/16368
Committed: http://github.org/Juniper/contrail-vrouter/commit/790d0dcf1404b05e9681795b63b7c9137de7a587
Submitter: Zuul
Branch: master

commit 790d0dcf1404b05e9681795b63b7c9137de7a587
Author: Divakar <email address hidden>
Date: Thu Oct 8 16:05:48 2015 +0530

Adapting flow table to generic hash table

Currently the over flow table of flow table is a different table and is
searched if lookup does not succed in main table. The over flow table is
searched completely starting from a hash till the entry is found. This
leads to performance drop if entry does not exists in the table as such.

As a fix, the flow table is adapted to generic hash table, which
maintains a linked list of entries from the last bucket entry of main
table. So the search always looks into only these entries rather the
complete table.

Change-Id: I1525d882466c897a8b3b5ed39a4c44ce62601685
closes-bug: #1497833
closes-bug: #1511318
closes-bug: #1497833
closes-bug: #1517749
closes-bug: #1520614
closes-bug: #1522765

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.