[Serusers] SER TCP Bug

Andrei Pelinescu-Onciul andrei at iptel.org
Sat Aug 19 13:45:28 CEST 2006


On Aug 17, 2006 at 19:37, Curt Moore <tgrman21 at gmail.com> wrote:
> Hello all.
> 
> I've been doing some experimentation with both CVS HEAD and 0.9.6 of
> SER and version 1.1.0 of OpenSER.
> 
> It appears that there is a TCP bug in SER which has been fixed in
> OpenSER.  I've seen various posts in the past on the serdev and the
> serusers lists regarding this issue but with no definitive solution.
> Are there any plans to merge some of the great work of the OpenSER
> developers back into SER, such as this fix for TCP?

The great work in openser tcp is just applying selective patches from
ser. Looking through the cvs log there are only 2 small changes that do not
come from ser: bind before connect (with debatable usefulness, you can
make a case for it or against it and I am on the "against" side) and the
possibility to set the timers individually for each tcp connection (they
claim it helps for nat traversal and usrloc (?)).
Disclaimer: I do not want to imply that openser developer do not do
great work :-) It just happens that tcp is the wrong example, since
99.9999% from the code is from ser.

> 
> Below is the logfile I receive when I try to place a call from a UDP
> to a TCP device using CVS HEAD of SER.  The same routing logic in
> ser.cfg works perfectly in openser.cfg.
> 
> Aug 17 19:03:33 testbox /usr/sbin/ser[32534]: ERROR:
> tcp_blocking_connect: poll error: flags 18
> Aug 17 19:03:33 testbox /usr/sbin/ser[32534]: ERROR:
> tcp_blocking_connect: SO_ERROR (113) No route to host
> Aug 17 19:03:33 testbox /usr/sbin/ser[32534]: ERROR: tcpconn_connect:
> tcp_blocking_connect failed
> Aug 17 19:03:33 testbox /usr/sbin/ser[32534]: ERROR: tcp_send: connect 
> failed
> Aug 17 19:03:33 testbox /usr/sbin/ser[32534]: msg_send: ERROR: tcp_send 
> failed
> Aug 17 19:03:33 testbox /usr/sbin/ser[32534]: ERROR: t_forward_nonack:
> sending request failed
> Aug 17 19:03:33 sg1test /usr/sbin/ser[32534]: ERROR: sl_reply_error
> used: Unfortunately error on sending to next hop occurred (477/SL)

This looks like a tcp connect error and not like a ser bug.
Are you sure the ip routing is properly set on your host?
Are you sure this is not the other way arround (openser binds on an
interface before connecting and that's how you could get this error, ser
on the other hand doesn't do this, so it should work in all the cases)?

Could you send me ser.cfg and a detailed description on what exactly are
you doing when you get this error (so that I can reproduce it myself)?
The whole ser log, a packet dump (both tcp and udp) and the outputs of
/sbin/ifconfig and /sbin/route will also help.


> 
> Does anyone have any ideas on how to get this fixed in CVS HEAD of
> SER?  I've tried some backporting of the changes to the tcp_* files
> from OpenSER to SER but have not had any luck as of yet as I'm not
> fully sure of how the code is supposed to be handling each case.  This
> is to say that I'm just looking at code differences without really
> understanding how the code is supposed to work.
> 
> I'm happy to do anything I can to help get this resolved in SER's CVS HEAD.
> 

Thanks,
Andrei



More information about the sr-users mailing list