[VOL-4479] openonu panic in periodic-voltha-multi-uni-multiple-olts-test-bbsim-2.8 +
Onu adapter reconcilement may stuck on VLAN processing, especially in TT traffic scenarios
Signed-off-by: mpagenko <michael.pagenkopf@adtran.com>
Change-Id: I806f97c85e09bc2c741e40569a67ab3ce21300ab
diff --git a/internal/pkg/onuadaptercore/omci_vlan_config.go b/internal/pkg/onuadaptercore/omci_vlan_config.go
index 01a98df..daa4473 100644
--- a/internal/pkg/onuadaptercore/omci_vlan_config.go
+++ b/internal/pkg/onuadaptercore/omci_vlan_config.go
@@ -1313,9 +1313,14 @@
if oFsm.pDeviceHandler.isSkipOnuConfigReconciling() {
oFsm.configuredUniFlow = oFsm.numUniFlows
if oFsm.lastFlowToReconcile {
- logger.Debugw(ctx, "reconciling - flow processing finished", log.Fields{"device-id": oFsm.deviceID})
+ logger.Debugw(ctx, "reconciling - flow processing finished", log.Fields{
+ "device-id": oFsm.deviceID, "uni-id": oFsm.pOnuUniPort.uniID})
oFsm.pDeviceHandler.setReconcilingFlows(false)
- oFsm.pDeviceHandler.chReconcilingFlowsFinished <- true
+ //use asynchronous channel sending to avoid stucking on non-waiting receiver
+ select {
+ case oFsm.pDeviceHandler.chReconcilingFlowsFinished <- true:
+ default:
+ }
}
logger.Debugw(ctx, "reconciling - skip enterVlanConfigDone processing",
log.Fields{"numUniFlows": oFsm.numUniFlows, "configuredUniFlow": oFsm.configuredUniFlow, "device-id": oFsm.deviceID})