[asterisk-dev] ooh323 Channel Segmentation Fault

Wilmar Campos wilmar.campos at gmail.com
Sat Feb 25 08:25:49 MST 2006


Good morning,

I have installed asterisk 1.2.4, asterisk ooh323c-0.4, ooh323-8.1.

I have sveral CORE DUMPS, always on the same part:

#0  0x4002994f in pthread_mutex_trylock () from /lib/libpthread.so.0
No symbol table info available.
#1  0x40674565 in ast_mutex_trylock () from
/usr/lib/asterisk/modules/chan_ooh323.so
No symbol table info available.
#2  0x4066fcfd in onCallEstablished () from
/usr/lib/asterisk/modules/chan_ooh323.so
No symbol table info available.
#3  0x406855cc in ooOnSendMsg () from
/usr/lib/asterisk/modules/chan_ooh323.so
No symbol table info available.
#4  0x40684d5f in ooSendMsg () from /usr/lib/asterisk/modules/chan_ooh323.so
No symbol table info available.
#5  0x40683ea8 in ooProcessFDSETsAndTimers () from
/usr/lib/asterisk/modules/chan_ooh323.so
No symbol table info available.
#6  0x40684189 in ooMonitorChannels () from
/usr/lib/asterisk/modules/chan_ooh323.so
No symbol table info available.
#7  0x40674588 in ooh323c_stack_thread () from
/usr/lib/asterisk/modules/chan_ooh323.so
No symbol table info available.
#8  0x4002954e in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#9  0x401d5b8a in clone () from /lib/libc.so.6
No symbol table info available.

Can someone help me out with this?

I would like to try this code, in order to avoid the segmentation fault:


int onCallEstablished(ooCallData *call)

{

struct ooh323_pvt *p = NULL;

long num=0;

if(gH323Debug)

ast_verbose("--- onCallEstablished %s\n", call->callToken);

p = find_call(call);

if(!p) {

ast_log(LOG_ERROR, "Failed to find a matching call.\n");

return -1;

}

ast_mutex_lock(&p->lock);

if (!p->owner) {

ast_mutex_unlock(&p->lock);

ast_log(LOG_ERROR, "Channel has no owner\n");

return -1;

}

while(ast_mutex_trylock(&p->owner->lock))

{

ast_log(LOG_DEBUG,"Failed to grab lock, trying again\n");

ast_mutex_unlock(&p->lock);

usleep(1);

ast_mutex_lock(&p->lock);

num++;

if (num > 80000) {

ast_log(LOG_ERROR, "Waiting too long for channel lock\n");

return -1;

}

}



But i dont know if I am on the right path.....



Can someone help me out please.



Thanks,



Wilmar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-dev/attachments/20060225/32dd7f6b/attachment.htm


More information about the asterisk-dev mailing list