You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have searched the issues of this repository and believe that this is not a duplicate.
What happened?
While packaging ZMQ connections in the project to ensure high availability, the code uses dialEventSockLoop for constant proactive reconnection to ZMQ, which usually doesn't cause any issues.
However, if ZMQ disconnects during operation, and then we try to close the process, the goroutine becomes stuck here,
continuously trying to reconnect, hence preventing the process from exiting. It may be necessary to introduce an exit channel here to monitor the exit signals from the main program, thereby facilitating a smooth exit of the goroutine.
Moreover, it seems that the zmq package has some configurations like zmq4.WithAutomaticReconnect and zmq4.WithDialerMaxRetries... Would it be unnecessary, then, to attempt reconnections manually here?
The text was updated successfully, but these errors were encountered:
Instead of fixing this, maybe it is better to remove ZMQ support altogether. The MQTT Forwarder has been out already quite some time and has been recommended since then over installing the GW Bridge on gateways.
Recommendations:
On the gateway: MQTT Forwarder (accepting ZMQ + UDP)
On the server: GW Bridge (accepting UDP + Basics Station)
What happened?
While packaging ZMQ connections in the project to ensure high availability, the code uses
dialEventSockLoop
for constant proactive reconnection to ZMQ, which usually doesn't cause any issues.However, if ZMQ disconnects during operation, and then we try to close the process, the goroutine becomes stuck here,
chirpstack-gateway-bridge/internal/backend/concentratord/concentratord.go
Lines 109 to 113 in dfbaf37
continuously trying to reconnect, hence preventing the process from exiting. It may be necessary to introduce an exit channel here to monitor the exit signals from the main program, thereby facilitating a smooth exit of the goroutine.
Moreover, it seems that the zmq package has some configurations like
zmq4.WithAutomaticReconnect
andzmq4.WithDialerMaxRetries
... Would it be unnecessary, then, to attempt reconnections manually here?The text was updated successfully, but these errors were encountered: