Add lock to prevent race conditions on self._multipart_replies_flows #28
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #26
Description of the change
The variable
_multipart_replies_flows
holds a dictionary of received flows per switch when using OpenFlow 1.3 multipart messages. The dictionary is updated upon receiving the KytosEventkytos/of_core.v0x04.messages.in.ofpt_multipart_reply
and can be accessible from many different threads at the same time. This situation may lead to race conditions when two or more threads handling the flows for the same switch update the all_flows at the same time, resulting on inconsistent/missing data.This PR adds a
threading.Lock
mechanism to prevent race conditions at this variable.Release notes