when i remove the t_reply("404","not found") in failure_route, everything works alright. note: i intend to use the t_reply if there are no more branches available, instead of a self generated 408
then, putting a t_release() on event_route[dialog:failed] got rid of the error WARNING: tm [t_lookup.c:1564]: t_unref(): WARNING: script writer didn't release transaction no i do not have CRITICAL: dialog [dlg_hash.c:794]: log_next_state_dlg(): bogus event 4 in state 5 for dlg ... in my logs Kelvin Chua On Sat, Dec 28, 2013 at 6:22 AM, Daniel-Constantin Mierla <mico...@gmail.com > wrote: > Hello, > > do you get also a log message like: > > CRITICAL: dialog [dlg_hash.c:794]: log_next_state_dlg(): bogus event 4 in > state 5 for dlg ... ? > > The warning itself should be harmless. Maybe you can grab all the log > messages with debug=3, that will help to get more hits about what happens. > > Cheers, > Daniel > > > > On 26/12/13 06:35, Kelvin Chua wrote: > > Hi guys, > > was this issue resolved? > I encountered this issue also (4.0.5), in failure_route, i used > t_reply("404","not found") > never sent out, instead i get this in logs, > WARNING: tm [t_lookup.c:1564]: t_unref(): WARNING: script writer didn't > release transaction > > Kelvin Chua > > > On Tue, Nov 26, 2013 at 4:43 AM, Daniel-Constantin Mierla < > mico...@gmail.com> wrote: > >> Hello, >> >> the backtrace is ok for the moment. I will look over it and come back >> with results. >> >> Cheers, >> Daniel >> >> >> On 11/25/13 12:10 PM, Efelin Novak wrote: >> >> Hi Daniel, >> >> sorry it took me more than I expected. Is this sufficient? Meanwhile I >> found out that this happens when fr_inv_timer triggers and dialog module is >> turned on. >> >> Backtrace: >> >> bt >> #0 futex_release (lock=0xb4b90798) at ../../mem/../futexlock.h:137 >> #1 next_state_dlg (dlg=dlg@entry=0xb4bc5a38, event=event@entry=4, >> old_state=old_state@entry=0xbfef08a0, new_state=new_state@entry=0xbfef089c, >> unref=unref@entry=0xbfef08a4) at dlg_hash.c:950 >> #2 0xb6b05479 in dlg_onreply (t=0xb4bc5ce8, type=1048576, >> param=0xbfef097c) at dlg_handlers.c:469 >> #3 0xb6cc2336 in run_trans_callbacks_internal (cb_lst=0xb4bc5d28, >> type=type@entry=1048576, trans=0xb4bc5ce8, params=params@entry=0xbfef097c) >> at t_hooks.c:290 >> #4 0xb6cc25da in run_trans_callbacks_with_buf (type=type@entry=1048576, >> rbuf=rbuf@entry=0xb4bc5d54, req=req@entry=0xb4bc6a08, >> repl=repl@entry=0xffffffff, >> flags=flags@entry=505) at t_hooks.c:336 >> #5 0xb6cee953 in _reply_light (trans=trans@entry=0xb4bc5ce8, >> buf=0xb731f588 "SIP/2.0 505 Error\r\nVia: SIP/2.0/UDP >> 192.168.21.4;branch=z9hG4bKa6f5.8ca73657.0\r\nVia: SIP/2.0/UDP >> 10.0.0.95;rport=5060;branch=z9hG4bKBc143aFe81jDj\r\nFrom: \"USER\" < >> sip:USER@10.0.0.95>;t"..., len=len@entry=434, code=code@entry=505, >> lock=0, bm=0xbfef0e48, to_tag_len=<error reading variable: Unhandled dwarf >> expression opcode 0xfa>, >> to_tag=<error reading variable: Unhandled dwarf expression opcode >> 0xfa>) at t_reply.c:628 >> #6 0xb6ceedeb in _reply (trans=0xb4bc5ce8, trans@entry=0x1f9, >> p_msg=p_msg@entry=0xb731f568, code=505, text=0xb731f568 "Error", lock=0) >> at t_reply.c:782 >> #7 0xb6ceefd7 in t_reply_unsafe (t=0x1f9, t@entry=0xb4bc5ce8, >> p_msg=0xb731f568, p_msg@entry=0xb6d196c0, code=0, text=text@entry=0xb731f568 >> "Error") at t_reply.c:1531 >> #8 0xb6cd6904 in w_t_reply (msg=0xb6d196c0, p1=0xb731c988 "8]0\267\001", >> p2=0xb731c9b8 "8P0\267 ") at tm.c:1283 >> #9 0x080651cf in do_action (h=h@entry=0xbfef1258, a=a@entry=0xb7305d98, >> msg=msg@entry=0xb6d196c0) at action.c:1080 >> #10 0x08064137 in run_actions (h=h@entry=0xbfef1258, a=a@entry=0xb73053c8, >> msg=msg@entry=0xb6d196c0) at action.c:1573 >> #11 0x0806cedd in run_top_route (a=0xb73053c8, msg=msg@entry=0xb6d196c0, >> c=c@entry=0x0) at action.c:1658 >> #12 0xb6ceba98 in run_failure_handlers (t=t@entry=0xb4bc5ce8, >> rpl=0xffffffff, code=408, extra_flags=96) at t_reply.c:1028 >> #13 0xb6cece22 in t_should_relay_response (Trans=Trans@entry=0xb4bc5ce8, >> new_code=new_code@entry=408, branch=branch@entry=0, >> should_store=should_store@entry=0xbfef1464, >> should_relay=should_relay@entry=0xbfef1460, >> cancel_data=cancel_data@entry=0xbfef1510, reply=reply@entry=0xffffffff) >> at t_reply.c:1304 >> #14 0xb6cef076 in relay_reply (t=t@entry=0xb4bc5ce8, >> p_msg=p_msg@entry=0xffffffff, >> branch=branch@entry=0, msg_status=msg_status@entry=408, >> cancel_data=cancel_data@entry=0xbfef1510, >> do_put_on_wait=do_put_on_wait@entry=0) at t_reply.c:1707 >> #15 0xb6cc28b4 in fake_reply (t=t@entry=0xb4bc5ce8, branch=0, >> code=code@entry=408) at timer.c:354 >> #16 0xb6cc34b0 in final_response_handler (t=0xb4bc5ce8, r_buf=0xb4bc5dc8) >> at timer.c:526 >> #17 retr_buf_handler (ticks=272914717, tl=0xb4bc5ddc, p=0x3e8) at >> timer.c:584 >> #18 0x08183325 in timer_list_expire (slow_mark=12, slow_l=0xb49f2438, >> h=0xb49f2338, t=272914717) at timer.c:894 >> #19 timer_handler () at timer.c:959 >> #20 timer_main () at timer.c:998 >> #21 0x080b8c65 in main_loop () at main.c:1709 >> #22 0x08063bfe in main (argc=1, argv=0xbfef1844) at main.c:2566 >> >> (I have changed USER and IP address to hide my network :)) >> >> After this when I hit 'n' multiple times I got following output in >> infinite loop: >> >> 22 0x08063bfe in main (argc=1, argv=0xbfef1844) at main.c:2566 >> (gdb) n >> next_state_dlg (dlg=dlg@entry=0xb4bc5a38, event=event@entry=4, >> old_state=old_state@entry=0xbfef08a0, new_state=new_state@entry=0xbfef089c, >> unref=unref@entry=0xbfef08a4) at dlg_hash.c:952 >> 952 LM_DBG("dialog %p changed from state %d to " >> (gdb) >> 955 } >> (gdb) >> dlg_onreply (t=0xb4bc5ce8, type=1048576, param=0xbfef097c) at >> dlg_handlers.c:470 >> 470 dlg_run_event_route(dlg, (rpl==FAKED_REPLY)?NULL:rpl, >> old_state, new_state); >> (gdb) >> 472 if (new_state==DLG_STATE_EARLY) { >> (gdb) >> 479 if (new_state==DLG_STATE_CONFIRMED_NA && >> (gdb) >> 540 if ( new_state==DLG_STATE_DELETED >> (gdb) >> 542 || old_state==DLG_STATE_EARLY) ) { >> (gdb) >> 541 && (old_state==DLG_STATE_UNCONFIRMED >> (gdb) >> 559 if (unref) dlg_unref(dlg, unref); >> (gdb) >> 563 dlg_release(dlg); >> (gdb) >> 565 } >> (gdb) >> run_trans_callbacks_internal (cb_lst=0xb4bc5d28, type=type@entry=1048576, >> trans=0xb4bc5ce8, params=params@entry=0xbfef097c) at t_hooks.c:292 >> 292 cbp=cbp->next; >> (gdb) >> 283 while(cbp){ >> (gdb) >> 286 if ( (cbp->types)&type ) { >> (gdb) >> 292 cbp=cbp->next; >> (gdb) >> 283 while(cbp){ >> (gdb) >> 286 if ( (cbp->types)&type ) { >> (gdb) >> 287 DBG("DBG: trans=%p, callback type %d, id %d entered\n", >> (gdb) >> 290 cbp->callback( trans, type, params ); >> (gdb) >> 289 params->param = &(cbp->param); >> (gdb) >> 290 cbp->callback( trans, type, params ); >> (gdb) >> 292 cbp=cbp->next; >> (gdb) >> 283 while(cbp){ >> (gdb) >> 286 if ( (cbp->types)&type ) { >> (gdb) >> 292 cbp=cbp->next; >> (gdb) >> 283 while(cbp){ >> (gdb) >> 286 if ( (cbp->types)&type ) { >> (gdb) >> 287 DBG("DBG: trans=%p, callback type %d, id %d entered\n", >> (gdb) >> 290 cbp->callback( trans, type, params ); >> (gdb) >> 289 params->param = &(cbp->param); >> (gdb) >> 290 cbp->callback( trans, type, params ); >> (gdb) >> 292 cbp=cbp->next; >> (gdb) >> 283 while(cbp){ >> >> Regards >> >> Efelin >> >> >> 2013/11/20 Daniel-Constantin Mierla <mico...@gmail.com> >> >>> Hello, >>> >>> I will investigate more -- meanwhile had some traveling. It would speed >>> up if you can send the backtrace of one process that blocks when you >>> applied the patch. >>> >>> You need to connect with gdb to it: >>> >>> gdb /path/to/kamailio _PID_ >>> >>> replace _PID_ with the pid of blocked kamailio process. >>> >>> Cheers, >>> Daniel >>> >>> >>> On 11/15/13 5:50 PM, Efelin Novak wrote: >>> >>> Hi Daniel, >>> >>> thanks for a reply. I applied the patch and now the Kamailio just >>> prints >>> >>> WARNING: tm [t_lookup.c:1564]: t_unref(): WARNING: script writer didn't >>> release transaction >>> >>> and than freezes without any log. It does not resend the incoming >>> "winning" failure reply neither response to any other messages, not even to >>> a new calls. It just freezes. All kamailio processes are running and eating >>> the whole 4-core processor. >>> >>> Restart of Kamailio solves this problem. >>> >>> Any ideas how to continue with debug? >>> >>> Thanks >>> >>> Efelin >>> >>> >>> 2013/11/15 Daniel-Constantin Mierla <mico...@gmail.com> >>> >>>> Hello, >>>> >>>> can you try attached patch? >>>> >>>> Let me know if all goes fine and I will commit it to the repository. >>>> >>>> Cheers, >>>> Daniel >>>> >>>> >>>> On 11/15/13 10:25 AM, Efelin Novak wrote: >>>> >>>> Hi, >>>> >>>> when I use t_reply("505", "Error"); in my failure route, the response >>>> is not forwarded and following is written into a log: >>>> >>>> kamailio[26216]: WARNING: tm [t_lookup.c:1559]: t_unref(): WARNING: >>>> script writer didn't release transaction >>>> >>>> plus next line is written exactly 416000 times into a log afterwards: >>>> >>>> kamailio[32685]: CRITICAL: dialog [dlg_hash.c:794]: >>>> log_next_state_dlg(): bogus event 4 in state 5 for dlg 0xb4af6588 >>>> [2575:7017] with clid '121d44f0-6555f4c8' and tags 'd12546d053aadc68o2' '' >>>> >>>> My point is to change the incoming code from users and append a Q.850 >>>> reason code. >>>> Is there any other way how to do this or a way how to fix this? >>>> I'm using Kamilio 4.0.4 on Debian 7.1 >>>> >>>> >>>> The code is as follows: >>>> failure_route[MANAGE_FAILURE] >>>> { >>>> if (t_is_canceled()) { >>>> exit; >>>> } >>>> if($T_reply_code == 408 && isflagset(10)) >>>> { >>>> xlog("Ringing timeout"); >>>> append_to_reply("Reason: Q.850;cause=28\r\n"); >>>> t_reply("505", "Error"); >>>> } >>>> } >>>> >>>> >>>> _______________________________________________ >>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing >>>> listsr-us...@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>>> >>>> >>>> -- >>>> Daniel-Constantin Mierla - >>>> http://www.asipto.comhttp://twitter.com/#!/miconda - >>>> http://www.linkedin.com/in/miconda >>>> Kamailio Advanced Trainings - Berlin, Nov 25-28 >>>> - more details about Kamailio trainings at http://www.asipto.com - >>>> >>>> >>>> _______________________________________________ >>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list >>>> sr-users@lists.sip-router.org >>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>>> >>>> >>> >>> -- >>> Daniel-Constantin Mierla - >>> http://www.asipto.comhttp://twitter.com/#!/miconda - >>> http://www.linkedin.com/in/miconda >>> Kamailio Advanced Trainings - Berlin, Nov 25-28 >>> - more details about Kamailio trainings at http://www.asipto.com - >>> >>> >> >> -- >> Daniel-Constantin Mierla - >> http://www.asipto.comhttp://twitter.com/#!/miconda - >> http://www.linkedin.com/in/miconda >> >> >> _______________________________________________ >> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list >> sr-users@lists.sip-router.org >> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >> >> > > -- > Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda > - http://www.linkedin.com/in/miconda > >
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users