[sr-dev] Big TCP message

Amit Elbaz amit at blueseasoft.co.il
Thu Jan 3 14:21:28 CET 2013


I increased tcp_rd_buf_size, but it did not help.
I don't think this is the problem.

In tcp_read.c:
int tcp_read(struct tcp_connection *c, int* flags)
{
int bytes_free, bytes_read;
struct tcp_req *r;
int fd;

r=&c->req;
fd=c->fd;
bytes_free=r->b_size- (int)(r->pos - r->buf);
 if (unlikely(bytes_free==0)){
LOG(L_ERR, "ERROR: tcp_read: buffer overrun, dropping\n");
 r->error=TCP_REQ_OVERRUN;
return -1;
}

how to i increase r->b_size ?

Thanks for you help, Amit.

On Wed, Jan 2, 2013 at 6:51 PM, Klaus Darilion <klaus.mailinglists at pernau.at
> wrote:

>  Hi!
>
> -b is the receive buffer of the socket in the OS (for UDP tweaking, I do
> not know if this is relevant for TCP), so not related to this problem as
> this problem happens inside Kamailio.
>
> Actually 15K is rather small, really strange that you get errors. So, I
> did some tests:
>
> 1. tcp_rd_buf_size must be increased. The documentation is bad as it
> meantions "TCP datagram" but actually means the maximum size of SIP (or
> HTTP) message that can be received.
>
> 2. tcp_rd_buf_size is internally limited to 16MBytes. If you need more,
> you have to change the code in:
> tcp_options.c:  { "rd_buf_size", CFG_VAR_INT | CFG_ATOMIC,    512,
> 16777216,  0,         0,
>
> 3. If you use real large message you may need to increase the private
> memory, and if you forward it with tm module, also the shared memory.
>
> regards
> Klaus
>
>
> Am 02.01.2013 13:59, schrieb Amit Elbaz:
>
>  this still does not solve the problem.
> I've also tried running Kamailio with *-b 32768* option.
>
>  here are the logs:
>
>  Jan  2 14:54:24 debdev kamailio[2580]: ERROR: <core> [tcp_read.c:344]:
> ERROR: tcp_read: buffer overrun, dropping
> Jan  2 14:54:24 debdev kamailio[2580]: ERROR: <core> [tcp_read.c:1127]:
> ERROR: tcp_read_req: error reading
>
>  Thanks for your help.
>
> On Wed, Jan 2, 2013 at 1:17 PM, Andrew Pogrebennyk <
> apogrebennyk at sipwise.com> wrote:
>
>> Hi,
>> you may try changing the tcp_rd_buf_size and tcp_conn_wq_max:
>> http://www.kamailio.org/wiki/cookbooks/3.3.x/core#tcp_conn_wq_max
>>
>> And since this in development mailing list I'd like to point at what
>> seem an iaccuracy in documentation: several options refer to the core
>> parameter called tcp_write_buf, which isn't described in the cookbook:
>>
>> tcp_conn_wq_max
>> Maximum bytes queued for write allowed per connection. Attempting to
>> queue more bytes would result in an error and in the connection being
>> closed (too slow). If *tcp_write_buf* is not enabled, it has no effect.
>>
>> I hope Daniel or someone who knows reads this..
>>
>> BR,
>> Andrew
>>
>> On 01/02/2013 10:38 AM, Amit Elbaz wrote:
>> > Hi,
>> >
>> > While sending a big TCP SIP message (15K+), I get "tcp_read: buffer
>> > overrun, dropping" message.
>> > this happens after a few fragments have been sent, and then i get this
>> > message and the connection resets.
>> > is it possible to set the max-buffer size through configuration? if so,
>> > where?
>> >
>> > Thanks, Amit.
>> >
>> >
>>  > _______________________________________________
>> > sr-dev mailing list
>> > sr-dev at lists.sip-router.org
>> > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>> >
>>
>>
>> _______________________________________________
>> sr-dev mailing list
>> sr-dev at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>
>
>
>
> _______________________________________________
> sr-dev mailing listsr-dev at lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20130103/6d8f12ee/attachment-0001.htm>


More information about the sr-dev mailing list