< Previous by Date Date Index Next by Date >
  Thread Index Next in Thread >

[reSIProcate] bug of ServerSubscription


<%--AID_SENDTO_BEGIN--%>resiprocate-devel<%--AID_SENDTO_END--%>, Hello
 
When client send two unsubscribes(expires=0) with different Cseq, it will make my program crash.
Because it will make DUM delete ServerSubscription's Dialog object twice. 
 
When ServerSubscription receives a unsubscribe ,it will delete itself, and post a message(DestroyUsage) to delete its Dialog object.
But Dum receives the second unsubscirbe, which call-id is the same as previous, and Cseq is larger than it.
Dum will create a new ServerSubscription with previous ServerSubscription's dialog , because of the same dialog ID. (Two ServerSubscription share one Dialog object!!!)
And then the 2nd ServerSubscription process this unsubscribe message, it will delete itself, and post a message(DestroyUsage) to delete it's Dialog object.
Now, there are 2 DestroyUsage messages in DUM's fifo, so DUM will delete this Dialog object twice!!!
 
I have no ideas to fix it :(
 
<%--AID_EDIT_ATTACHMENT_BEGIN--%><%--AID_EDIT_ATTACHMENT_END--%>
<%--AID_FROMNAME_BEGIN--%>Noiile<%--AID_FROMNAME_END--%>, <%--AID_FROMADDRESS_BEGIN--%>noiile@xxxxxxxxxxx<%--AID_FROMADDRESS_END--%>
2005-12-8