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

[reSIProcate] DUM: Access violation when running Resip Stack on its own thread.


Resip Team,
 
When I run the stack in its own thread (calling dum->run() ) the stack blows up after a minute or two of operation.
 
The stack breaks at the following location (call stack from VC++ 7):
 
 msvcr71d.dll!memcpy(unsigned char * dst=0x00000000, unsigned char * src="" unsigned long count=4277075694)  Line 171 Asm
 resip::Data::Data(const resip::Data & data="" Line 204 + 0x23 C++
 resip::TimerQueue::process()  Line 157 + 0x63 C++
 resip::TransactionController::process(resip::FdSet & fdset={...})  Line 82 + 0x17 C++
 resip::SipStack::process(resip::FdSet & fdset={...})  Line 415 C++
 resip::DialogUsageManager::process(resip::FdSet & fdset={...})  Line 1041 C++
 UAThreadRunner::thread()  Line 35 C++
 threadWrapper(void * threadParm=0x0a9df238)  Line 33 + 0xd C++
    (A thread in the application)
               --- calls ---
    dum->process()
 
        ...
        ...
        ...
        ...
 
    TimerQueue::process
                --- calls ---
    mFifo.add( new TimerMessage(i-> ... ) );                 // <----------------- breaks here.
 
Looks like Data constructor on new TimerMessage's first argument (Data object pass by value) is being called with  invalid data and causing memcpy to a NULL pointer (data.mSize value on the debugger is 4xxxxxxxxx!!!! thats 4GB!)
 
Any thoughts on what is happening here?
 
My previously reported problem: where DUM fails to send a cancel still persists. I'll try to build a small application to reproduce this issue and send it to you soon.
 
--prasad.