UpdateQueue can get wedged in pathological case
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Juniper Openstack | Status tracked in Trunk | |||||
R2.0 |
Fix Committed
|
High
|
Nischal Sheth | |||
R2.1 |
Fix Released
|
High
|
Nischal Sheth | |||
R2.20 |
Fix Released
|
High
|
Nischal Sheth | |||
Trunk |
Fix Committed
|
High
|
Nischal Sheth |
Bug Description
Consider the following sequence of events:
- A single peer which has joined a ribout and hence it's update queues
- Multiple routes are added which results in updates on update queue
- Peer gets blocked after some updates have been sent to it
- Since the peer is the only one in the queue it's marker is not split out
- IOW the tail marker is somewhere in the middle of the update queue
- New peer joins the ribout and and hence the update queues
- Bit for the new peer is added to the tail marker
- New routes get added to table and are enqueued at the end of the queue
- Tail dequeue for ribout is not kicked since tail marker is not at end
- First peer leaves and it's bit in the updates is cleaned up
The new peer doesn't receive the newly added routes and any subsequent
routes that get enqueued to the update queue for the ribout i.e it's wedged.
description: | updated |
Review in progress for https:/ /review. opencontrail. org/12017
Submitter: Nischal Sheth (<email address hidden>)