On Friday 15 May 2009, Daniel-Constantin Mierla wrote: > On 05/15/2009 02:19 PM, Alex Hermann wrote: > > I'm seeing an increasing amount of spurious timeouts on my proxies. > > Even though the proxy receives a "100 Trying" response immediately > > is this 100 coming very fast? Can you try with r5803, it was a(nother) > fix to the race between request/reply.
I see you have put this 'fix' away in a define in rev 5868 (quoted below for reference). Could you elaborate on the possible side-effect? I have run a proxy with r5803 enabled for quite some time without noticable side effects. What effect should I've been on the lookout for? And I have a question on patch 5803: the fix seems to depend on the fact that another process fills the 'last_received' field on an incoming reply. I assume 't' is in shared memory then, but I fail to see any locking around the access to this structure. Where is the locking in tm? r5801 | miconda | 2009-04-23 11:48:08 +0200 (Thu, 23 Apr 2009) | 4 lines - narrow reply race time frame - patch by Zappasodi Daniele - note: new devel on svn trunk has stopped and continues on sip-router.org git, tm is the only one K module not imported in SR and this patch is applied to have it when comparing additional features in K and for easier backporting Index: modules/tm/t_fwd.c =================================================================== --- modules/tm/t_fwd.c (revision 5800) +++ modules/tm/t_fwd.c (revision 5801) @@ -719,7 +719,11 @@ -p_msg->REQ_METHOD); } - start_retr( &t->uac[i].request ); + if(p_msg->REQ_METHOD==METHOD_INVITE + && t->uac[i].last_received>=100) + LM_DBG("Last received %d\n",t->uac[i].last_received); + else + start_retr( &t->uac[i].request ); set_kr(REQ_FWDED); } } r5868 | miconda | 2009-06-02 11:25:18 +0200 (Tue, 02 Jun 2009) | 2 lines - ifdef'ed last recevied checked added last time (possible side effects to be more investigated) Index: modules/tm/t_fwd.c =================================================================== --- modules/tm/t_fwd.c (revision 5867) +++ modules/tm/t_fwd.c (revision 5868) @@ -718,11 +718,12 @@ run_trans_callbacks( TMCB_REQUEST_BUILT, t, p_msg,0, -p_msg->REQ_METHOD); } - +#ifdef TM_FWD_LRCV_CHECK if(p_msg->REQ_METHOD==METHOD_INVITE && t->uac[i].last_received>=100) LM_DBG("Last received %d\n",t->uac[i].last_received); else +#endif start_retr( &t->uac[i].request ); set_kr(REQ_FWDED); } -- Greetings, Alex Hermann _______________________________________________ Kamailio (OpenSER) - Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users http://lists.openser-project.org/cgi-bin/mailman/listinfo/users