VOL-1313 - OpenOMCI losing transactions when multiple concurrent tasks are operating
For each new send executed by OMCI, the transaction request store is flushed. Thus,
for any occurance of multiple concurrent tasks, only the last task will run to
successful completion. All others will throw tx-message-missing exception and
return without calling any transaction completion callbacks to the task.
Removed the deletion of existing dictionary of request transactions while
performing any flush. The flush operation is still performed to allow
auditing and removal of stale transactions. But, the dictionary backing
the transactions is kept.
Change-Id: Ide76ddcb2e8f8224d0128aa7e111db280f9e1766
diff --git a/voltha/extensions/omci/omci_cc.py b/voltha/extensions/omci/omci_cc.py
index 326c8f8..f8b2be0 100644
--- a/voltha/extensions/omci/omci_cc.py
+++ b/voltha/extensions/omci/omci_cc.py
@@ -413,8 +413,6 @@
if d is not None and not d.called:
d.cancel()
- self._requests = dict()
-
def _get_tx_tid(self):
"""
Get the next Transaction ID for a tx. Note TID=0 is reserved
@@ -575,4 +573,4 @@
self.log.debug('send_get_alarm_next')
frame = OntDataFrame().get_all_alarm_next(seq_no)
- return self.send(frame, timeout)
\ No newline at end of file
+ return self.send(frame, timeout)