canceling
of b branch should happen already after step 4, but perhaps 4 and
5 take place almost simultaneously and there is some race condition
related bug in tm module.
I think it's just the order of events. According to my packet capture:
- Packet 9, time index 7.953711: 200 OK arrives from A.
- Packet 10, time index 7.954636: 200 OK arrives from B.
- Packet 11, time index 7.969227: Proxy passes 200 OK from A back to SBC.
- Packet 12, time index 7.969268: Proxy originates CANCEL for branch B.
- Packet 13, time index 7.970279: Proxy passes 200 OK from B back to
- SBC.
as you see, 9 and 10 arrive to proxy very close to each other, which may
result in a race condition bug causing proxy to send packet 13, which it
should not do.
i suggest you file a bug report on this.