flow -l gets into a infinite loop with repeated flow entry index

Bug #1539397 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
R2.22.x
Fix Committed
High
Divakar Dharanalakota
Trunk
Fix Committed
High
Divakar Dharanalakota

Bug Description

R3.0 Build 2704 Ubuntu 14.04 Kilo multi-node setup

flow -l never completed on a setup with ~30-40K flows.
It was seen that overflow entry index 524288 was repeated forever as shown below...

  15465 66732<=>524288 10.1.1.4:9 17 (1)
  15466 10.1.1.3:26280
  15467 (K(nh):14, Action:F, Flags:, S(nh):14, Statistics:1/60 UdpSrcPort 54090
  15468

  87741 374779<=>414984 10.1.1.4:9 17 (1)
  87742 10.1.1.3:25833
  87743 (K(nh):14, Action:F, Flags:, S(nh):14, Statistics:1/60 UdpSrcPort 64245
  87744 Oflow entries:
  87745 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288
  87746 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288
  87747 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288
  87748 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288
  87749 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288
  87750 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288
  87751 524288 524288 524288 524288 524288 524288 524288 524288 524288 524288

Changed in juniperopenstack:
assignee: Hari Prasad Killi (haripk) → Divakar Dharanalakota (ddivakar)
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/16667
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/16667
Committed: http://github.org/Juniper/contrail-vrouter/commit/18cdcd59d8f94a07665f8ef058caa30ecced3815
Submitter: Zuul
Branch: master

commit 18cdcd59d8f94a07665f8ef058caa30ecced3815
Author: Divakar <email address hidden>
Date: Fri Jan 29 16:24:00 2016 +0530

Get hentry even if Invalid, to manipulate bucket entry

While deleting over flow table entry, the main bucket entry is fetched
using an API which return only valid hash entries. Due to this, if the
bucket entry is invalid, the over flow entry is not manipulated in the
list of bucket, but over flow entry is manipulated independently. Beause
of this, next index of main hash entry still points to cleared over flow
entry. Later if same over flow entry is added to same bucket, the next
index goes bad.

As a fix, the API which returns hash entry unconditinally is used to
manipulate the bucket entry. Also next_index is not made invalid whilte
invalidating hash table entry. This gets invalidated only when the
overflow entry is deleted

An extra vr_release_hentry() is removed from flow.

Change-Id: I90f50847a0f928f4325290bb0b8cb0ec5f47e108
closs-bug: #1539397

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

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

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

Review in progress for https://review.opencontrail.org/16727
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/16726
Committed: http://github.org/Juniper/contrail-vrouter/commit/b12a01babdb0994d2737b5880cf0eb0ed76fe196
Submitter: Zuul
Branch: R2.20

commit b12a01babdb0994d2737b5880cf0eb0ed76fe196
Author: Divakar <email address hidden>
Date: Fri Jan 29 16:24:00 2016 +0530

Get hentry even if Invalid, to manipulate bucket entry

While deleting over flow table entry, the main bucket entry is fetched
using an API which return only valid hash entries. Due to this, if the
bucket entry is invalid, the over flow entry is not manipulated in the
list of bucket, but over flow entry is manipulated independently. Beause
of this, next index of main hash entry still points to cleared over flow
entry. Later if same over flow entry is added to same bucket, the next
index goes bad.

As a fix, the API which returns hash entry unconditinally is used to
manipulate the bucket entry. Also next_index is not made invalid whilte
invalidating hash table entry. This gets invalidated only when the
overflow entry is deleted

An extra vr_release_hentry() is removed from flow.

Change-Id: I90f50847a0f928f4325290bb0b8cb0ec5f47e108
closs-bug: #1539397

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote :

Reviewed: https://review.opencontrail.org/16727
Committed: http://github.org/Juniper/contrail-vrouter/commit/968be3dfc61dc3a5cc17d1f6a33635efe5072e46
Submitter: Zuul
Branch: R2.22.x

commit 968be3dfc61dc3a5cc17d1f6a33635efe5072e46
Author: Divakar <email address hidden>
Date: Fri Jan 29 16:24:00 2016 +0530

Get hentry even if Invalid, to manipulate bucket entry

While deleting over flow table entry, the main bucket entry is fetched
using an API which return only valid hash entries. Due to this, if the
bucket entry is invalid, the over flow entry is not manipulated in the
list of bucket, but over flow entry is manipulated independently. Beause
of this, next index of main hash entry still points to cleared over flow
entry. Later if same over flow entry is added to same bucket, the next
index goes bad.

As a fix, the API which returns hash entry unconditinally is used to
manipulate the bucket entry. Also next_index is not made invalid whilte
invalidating hash table entry. This gets invalidated only when the
overflow entry is deleted

An extra vr_release_hentry() is removed from flow.

Change-Id: I90f50847a0f928f4325290bb0b8cb0ec5f47e108
closs-bug: #1539397

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.