[reSIProcate] Access Violation in Data.cxx

Byron Campen bcampen at estacado.net
Fri Nov 17 14:57:35 CST 2006


	Ok, let me clarify this statement; DUM is not threadsafe. However,  
the stack itself is (ie, you can have multiple stacks running at once  
in different threads. Also, you can have multiple TUs attached to a  
stack, each in their own thread, without problems). If you have run  
into thread-safety issues in the stack (as opposed to DUM), I would  
really like to know about them.

	Scott: Can you replicate this crash in basicCall?

Best regards,
Byron Campen

> This looks to me like the kind of bug I get whenever I accidentally
> allow multithreaded use of resip. It's not threadsafe.  Others know
> better what is supposed to work and what doesn't with the StackThread,
> but I gave up getting it to work awhile ago and simple always call
> process() directly on dum and stack, and make sure all of my accesses
> to Dum are protected by a mutex.
>
> Bruce
>
> On 11/17/06, Jeremy  Geras <jgeras at newheights.com> wrote:
>>
>>
>>
>>
>> OK, so a few other things I've learned:
>>
>>
>>
>> -          I can definitely reproduce this with basicCall (as is,  
>> latest
>> code from SVN, with one minor modification to keep executing most  
>> of the
>> main() in a loop).
>>
>> -          One way I've found to make the issue happen fairly  
>> quickly is to
>> bog down the processor – e.g. I had this running for about 30  
>> minutes on my
>> 1.7GHz laptop with 384 MB of RAM, then went to try and open the  
>> Start Menu
>> which made the machine chug away for a bit (likely since I had  
>> Visual Studio
>> open), and bang, there was the exception.  I also experienced this  
>> yesterday
>> on my workstation just after I connected to it using Remote  
>> Desktop (which
>> also makes a machine chug away for a bit).  So there seems to be a
>> correlation.  Might point to a timing issue?
>>
>> -          The problem seems to be in TransactionMap::add(..) at  
>> the point
>> where it does mMap.erase(i).  The iterator appears to be invalid.   
>> I have no
>> idea why this might be the case, but I noticed something kinda  
>> strange:  in
>> TransactionMap::erase(..) there's a comment: "don't delete it  
>> here, the
>> TransactionState deletes itself and removes itself from the map".   
>> However
>> in TransactionMap::add(..) it actually *does* delete the  
>> TransactionState
>> (delete i->second).  This is totally a guess, but seemed strange  
>> to me.
>>
>>
>>
>> Very curious to know if anyone else can reproduce this, and if  
>> anyone has
>> any thoughts on what the problem is?  As it is, the latest  
>> revision is
>> unusable for me.
>>
>>
>>
>> Thanks,
>>
>>  - Jeremy -
>>
>>
>>
>>
>>
>
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at list.resiprocate.org
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2423 bytes
Desc: not available
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20061117/eb3a7121/attachment.bin>


More information about the resiprocate-devel mailing list