<div><div dir="auto">Hello Razvan,</div></div><div dir="auto"><br></div><div dir="auto">On ubuntu we have a failure for more then 1024 buffers. There is something defined in some experimental headers (as __IOV_MAX), but the IOV_MAX define is not visible in the rtpengine module.</div><div dir="auto"><br></div><div dir="auto">And yes, there is an extra buffer. I guess the length of that extra buffer was zero and that’s why it didn’t create issues. But as soon as I concatenated the buffer, the issue showed up and I had an extra trailing string at the end of the rtpengine command that was sent on the wire.</div><div dir="auto">After reducing  the number of buffers by one, all was good on both scenarios: sending with and without concatenated buffers.</div><div dir="auto">I will prepare a fix for it and push it.</div><div dir="auto"><br></div><div dir="auto">-ovidiu</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 26, 2020 at 03:55 Răzvan Crainea <<a href="mailto:razvan@opensips.org">razvan@opensips.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi, Ovidiu!<br>
<br>
So you're saying that the IOV_MAX is not explicitly defined, but it does <br>
fail after 1024 buffers, correct? If so, perhaps we should limit the <br>
number of buffers to 1024, if not already defined.<br>
I did notice the extra vcnt as well, but I though that was related to <br>
the fact that it allocates one extra iovec (at the headr) for the <br>
cookie, and sometime uses it, sometime doesn't. Nevertheless, it is <br>
consistent on both cases, UNIX & UDP, both have that vcnt + 1. Now I <br>
haven't checked whether this is correct or not, could you please confirm?<br>
<br>
Best regards,<br>
<br>
Răzvan Crainea<br>
OpenSIPS Core Developer<br>
<a href="http://www.opensips-solutions.com" rel="noreferrer" target="_blank">http://www.opensips-solutions.com</a><br>
<br>
On 6/26/20 2:29 AM, Ovidiu Sas wrote:<br>
> It looks like the hidden IOV_MAX is set to 1024 in debian.<br>
> I tested a patch and all looks good.<br>
> It seems that there is an error in the code: writev has the wrong<br>
> number of iovcnt (should be one less).<br>
> I tested and all looks ok (the code in rtpproxy.c has the proper iovcnt).<br>
> <br>
> -ovidiu<br>
> <br>
> On Thu, Jun 25, 2020 at 1:03 PM Ovidiu Sas <<a href="mailto:osas@voipembedded.com" target="_blank">osas@voipembedded.com</a>> wrote:<br>
>><br>
>> We will need to add a param to control the max number of buffers.<br>
>><br>
>> -ovidiu<br>
>><br>
>> On Thu, Jun 25, 2020 at 1:02 PM Ovidiu Sas <<a href="mailto:osas@voipembedded.com" target="_blank">osas@voipembedded.com</a>> wrote:<br>
>>><br>
>>> It seems that when we have more than roughly 1000 buffers, the send fails.<br>
>>><br>
>>> -ovidiu<br>
>>><br>
>>> On Wed, Jun 24, 2020 at 8:54 AM Ovidiu Sas <<a href="mailto:osas@voipembedded.com" target="_blank">osas@voipembedded.com</a>> wrote:<br>
>>>><br>
>>>> Hello Razvan,<br>
>>>><br>
>>>> The system is a debian buster one.<br>
>>>> I patched the code:<br>
>>>> #ifdef IOV_MAX<br>
>>>>      LM_NOTICE("IOV_MAX=[%d]\n", IOV_MAX);<br>
>>>> #else<br>
>>>>      LM_NOTICE("no IOV_MAX\n");<br>
>>>> #endif<br>
>>>><br>
>>>> and I get:<br>
>>>> NOTICE:rtpengine:send_rtpe_command: no IOV_MAX<br>
>>>> in the logs.<br>
>>>><br>
>>>> Then I patched the code again to check how many buffers are being used:<br>
>>>> The max so far was 73:<br>
>>>> LM_NOTICE("writev(rtpe_socks[node->idx], v , %d)\n", vcnt + 1);<br>
>>>> got me:<br>
>>>> NOTICE:rtpengine:send_rtpe_command: writev(rtpe_socks[node->idx], v , 73)<br>
>>>><br>
>>>> I will continue to monitor the system to see if there is a correlation<br>
>>>> between the error and the number of buffers.<br>
>>>><br>
>>>> Thanks,<br>
>>>> Ovidiu<br>
>>>><br>
>>>> On Wed, Jun 24, 2020 at 1:59 AM Răzvan Crainea <<a href="mailto:razvan@opensips.org" target="_blank">razvan@opensips.org</a>> wrote:<br>
>>>>><br>
>>>>> Hi, Ovidiu!<br>
>>>>><br>
>>>>> I doubt this is a problem of OpenSIPS version, but rather of the OS you<br>
>>>>> are running on. I suspect that error comes from the fact that the bson<br>
>>>>> resulted has more than IOV_MAX elements, which if I recall correctly it<br>
>>>>> was 15 on some OSes.<br>
>>>>> We had a similar problem in rtpproy[1], where we had merged the buffers<br>
>>>>> in a single one just to pass over this limitation. Could you check if<br>
>>>>> you are facing a similar issue?<br>
>>>>><br>
>>>>> [1]<br>
>>>>> <a href="https://github.com/OpenSIPS/opensips/blob/master/modules/rtpproxy/rtpproxy.c#L2031" rel="noreferrer" target="_blank">https://github.com/OpenSIPS/opensips/blob/master/modules/rtpproxy/rtpproxy.c#L2031</a><br>
>>>>><br>
>>>>> Răzvan Crainea<br>
>>>>> OpenSIPS Core Developer<br>
>>>>> <a href="http://www.opensips-solutions.com" rel="noreferrer" target="_blank">http://www.opensips-solutions.com</a><br>
>>>>><br>
>>>>> On 6/24/20 7:32 AM, Ovidiu Sas wrote:<br>
>>>>>> This is happening also on the latest 3.0.<br>
>>>>>> The weird thing is that opensips doesn't send anything to rtpengine.<br>
>>>>>> The first opensips/rtpengine exchange on the initial INVITE works ok,<br>
>>>>>> but the opensips/rtpengine exchange on the 200ok fails (no command is<br>
>>>>>> sent by opensips - confirmed by running ngrep on the loopback<br>
>>>>>> interface).<br>
>>>>>> On the next call, the initial offer works fine, but the answer fails<br>
>>>>>> due to no command issued by opensips.<br>
>>>>>><br>
>>>>>> version: opensips 3.0.2 (x86_64/linux)<br>
>>>>>> flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC,<br>
>>>>>> Q_MALLOC, F_MALLOC, HP_MALLOC, DBG_MALLOC, FAST_LOCK-ADAPTIVE_WAIT<br>
>>>>>> ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,<br>
>>>>>> MAX_URI_SIZE 1024, BUF_SIZE 65535<br>
>>>>>> poll method support: poll, epoll, sigio_rt, select.<br>
>>>>>> git revision: 3a8f6f137<br>
>>>>>> main.c compiled on 09:36:42 Jun 22 2020 with gcc 9<br>
>>>>>><br>
>>>>>> -ovidiu<br>
>>>>>><br>
>>>>>><br>
>>>>>> On Wed, Jun 10, 2020 at 2:49 PM Ovidiu Sas <<a href="mailto:osas@voipembedded.com" target="_blank">osas@voipembedded.com</a>> wrote:<br>
>>>>>>><br>
>>>>>>> Hello all,<br>
>>>>>>><br>
>>>>>>> I'm running opensips 3.1.0-beta (latest version) and experiencing<br>
>>>>>>> connectivity issues to the rtpengine daemon running on the same host:<br>
>>>>>>> ERROR:rtpengine:send_rtpe_command: can't send command to a RTP proxy<br>
>>>>>>> (22:Invalid argument)<br>
>>>>>>> ERROR:rtpengine:send_rtpe_command: timeout waiting reply from a RTP proxy<br>
>>>>>>> ERROR:rtpengine:send_rtpe_command: proxy <udp:<a href="http://127.0.0.1:2223" rel="noreferrer" target="_blank">127.0.0.1:2223</a>> does not<br>
>>>>>>> respond, disable it<br>
>>>>>>> ERROR:rtpengine:rtpe_function_call: no available proxies<br>
>>>>>>><br>
>>>>>>> After an opensips restart, everything comes to normal.<br>
>>>>>>> I was running previously opensips 3.1.0-dev and everything was working fine.<br>
>>>>>>><br>
>>>>>>> The issue starts showing up after a few days with very little traffic.<br>
>>>>>>> Is there anyone experiencing this issue?<br>
>>>>>>><br>
>>>>>>><br>
>>>>>>> Thanks,<br>
>>>>>>> Ovidiu<br>
>>>>>>><br>
>>>>>>> --<br>
>>>>>>> VoIP Embedded, Inc.<br>
>>>>>>> <a href="http://www.voipembedded.com" rel="noreferrer" target="_blank">http://www.voipembedded.com</a><br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>><br>
>>>>> _______________________________________________<br>
>>>>> Users mailing list<br>
>>>>> <a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a><br>
>>>>> <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
>>>><br>
>>>><br>
>>>><br>
>>>> --<br>
>>>> VoIP Embedded, Inc.<br>
>>>> <a href="http://www.voipembedded.com" rel="noreferrer" target="_blank">http://www.voipembedded.com</a><br>
>>><br>
>>><br>
>>><br>
>>> --<br>
>>> VoIP Embedded, Inc.<br>
>>> <a href="http://www.voipembedded.com" rel="noreferrer" target="_blank">http://www.voipembedded.com</a><br>
>><br>
>><br>
>><br>
>> --<br>
>> VoIP Embedded, Inc.<br>
>> <a href="http://www.voipembedded.com" rel="noreferrer" target="_blank">http://www.voipembedded.com</a><br>
> <br>
> <br>
> <br>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
</blockquote></div></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">VoIP Embedded, Inc.<br><a href="http://www.voipembedded.com" target="_blank">http://www.voipembedded.com</a></div>