From:
resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx
[mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Noiile
Sent: Wednesday, December 07, 2005 10:41
PM
To:
resiprocate-devel
Subject:
[reSIProcate] bug of ServerSubscription
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 :(