mirror of https://github.com/sipwise/rtpengine.git
When ports are closed early (while the call is still running), we must first update a slave rtpengine with this new information (that these ports are now closed) before actually releasing the ports ourselves. Not doing so leads to a race condition where the master instance re-uses a port that was just closed before the slave instance knows about the port being closed. We implement this using a thread-local list to keep track of ports that were released while processing a control message, and process this list to actually close the ports only after Redis has been updated. Additional calls to the function to close the ports are placed in strategic locations to make sure this is triggered in every code path. closes #1495 Change-Id: I803f4594f30ca315da0b84c6e76893f54ca3a7c9pull/1501/head
parent
b657af1905
commit
17bda4b1e8
Loading…
Reference in new issue