[OpenSIPS-Users] media-relay warning
Jeff Pyle
jpyle at fidelityvoice.com
Wed May 26 04:54:01 CEST 2010
Dan,
I increased the traffic_sampling_period to 30. I don't know if it's related, but I now receive the following errors on any new relay session:
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.5/mediaproxy/relay.py", line 175, in lineReceived
response = self.factory.parent.got_command(self.factory.host, self.command, self.headers)
File "/usr/lib/pymodules/python2.5/mediaproxy/relay.py", line 387, in got_command
local_media = self.session_manager.update_session(dispatcher, **headers)
File "/usr/lib/pymodules/python2.5/mediaproxy/mediacontrol.py", line 693, in update_session
session = Session(self, dispatcher, call_id, from_tag, from_uri, to_tag, to_uri, cseq, user_agent, media, is_downstream, is_caller_cseq)
File "/usr/lib/pymodules/python2.5/mediaproxy/mediacontrol.py", line 432, in __init__
self.update_media(cseq, to_tag, user_agent, media_list, is_downstream, is_caller_cseq)
File "/usr/lib/pymodules/python2.5/mediaproxy/mediacontrol.py", line 463, in update_media
for media_type, media_ip, media_port, media_direction in media_list:
ValueError: too many values to unpack
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.5/mediaproxy/relay.py", line 175, in lineReceived
response = self.factory.parent.got_command(self.factory.host, self.command, self.headers)
File "/usr/lib/pymodules/python2.5/mediaproxy/relay.py", line 387, in got_command
local_media = self.session_manager.update_session(dispatcher, **headers)
File "/usr/lib/pymodules/python2.5/mediaproxy/mediacontrol.py", line 693, in update_session
session = Session(self, dispatcher, call_id, from_tag, from_uri, to_tag, to_uri, cseq, user_agent, media, is_downstream, is_caller_cseq)
File "/usr/lib/pymodules/python2.5/mediaproxy/mediacontrol.py", line 432, in __init__
self.update_media(cseq, to_tag, user_agent, media_list, is_downstream, is_caller_cseq)
File "/usr/lib/pymodules/python2.5/mediaproxy/mediacontrol.py", line 463, in update_media
for media_type, media_ip, media_port, media_direction in media_list:
ValueError: too many values to unpack
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.5/mediaproxy/relay.py", line 175, in lineReceived
response = self.factory.parent.got_command(self.factory.host, self.command, self.headers)
File "/usr/lib/pymodules/python2.5/mediaproxy/relay.py", line 387, in got_command
local_media = self.session_manager.update_session(dispatcher, **headers)
File "/usr/lib/pymodules/python2.5/mediaproxy/mediacontrol.py", line 693, in update_session
session = Session(self, dispatcher, call_id, from_tag, from_uri, to_tag, to_uri, cseq, user_agent, media, is_downstream, is_caller_cseq)
File "/usr/lib/pymodules/python2.5/mediaproxy/mediacontrol.py", line 432, in __init__
self.update_media(cseq, to_tag, user_agent, media_list, is_downstream, is_caller_cseq)
File "/usr/lib/pymodules/python2.5/mediaproxy/mediacontrol.py", line 463, in update_media
for media_type, media_ip, media_port, media_direction in media_list:
ValueError: too many values to unpack
This is on Mediaproxy 2.3.8. The relay machines are Debian unstable, with the Mediaproxy pre-reqs from the APT repository. I originally tried 2.4.2 but got some weirdness on the dispatcher side, a CentOS machine. I figured it was some python-application or gnutls version issue. I'm tapped out on the dispatcher machine because of the Python 2.4 issue in CentOS.
The same time I changed the sampling period I also updated from Opensips 1.6 rev 6617 to rev 6898. Thinking perhaps there has been some mediaproxy module change that isn't jiving with 2.3.8, I'll go back to a previous version to see if I still see the relay problems.
- Jeff
On May 25, 2010, at 3:19 PM, Dan Pascu wrote:
>
> On 25 May 2010, at 19:52, Jeff Pyle wrote:
>
>> Hi Saúl,
>>
>> That makes sense. I'm more busy today than curious but thanks for
>> the info!
>>
>> Is this calculation used for documentation only? Does disabling it
>> affect any operational aspect?
>
> It won't affect any operational aspect. It's only used to gather
> statistics. If you disable it you won't know how much data was moved
> through the relay by each session.
>
>> Would its running too slow cause any traffic issues through the
>> relay, particularly unscheduled disconnections from the dispatcher?
>
> No. It has no relation with the connections. The only downside of
> having it enabled when it takes too much to compute is that the
> function that gathers the statistics is blocking. That means that if
> the relay is asked to add a new session at that time it won't do it
> until the statistics gathering function returns. Existing streams that
> belong to already established sessions won't be affected as they are
> already processed inside the kernel. The only thing affected is
> setting up new streams which is only delayed until the statistics
> gathering function finishes its job. In your case if such a request
> comes it will be delayed by approximately 11ms, which will not affect
> your operations in any visible way. The message is printed as a
> warning. We considered that blocking the processing of requests for
> more than 10ms is undesirable, but in practice you won't see any
> difference even if it takes 100ms to gather the statistics.
>
>> I'm trying to diagnose the root causes of some issues we had this
>> morning and this information will be most helpful.
>
> If you have one way audio or disconnections, those are in no way
> caused by this. As I said, once the session is established, the data
> is forwarded by conntrack rules in the kernel and it will not be
> affected by any delay in response from the relay. The only negative
> effect you can expect if the statistics gathering time is too high, is
> a delay in establishing the session.
>
>>
>>
>>
>> - Jeff
>>
>>
>> On May 25, 2010, at 12:19 PM, Saúl Ibarra Corretgé wrote:
>>
>>> Hi Jeff and Lazslo,
>>>
>>> On 25/5/10 4:45 PM, Jeff Pyle wrote:
>>>> Laszlo,
>>>>
>>>> Good suggestion... I haven't dug into the source to see if the two
>>>> are
>>>> related. I've set that value to 0 to disable it. We'll see.
>>>>
>>>
>>> Indeed, that setting disables that calculation. If too many streams
>>> are
>>> traversing the MediaProxy relay at the same time, the calculation
>>> could
>>> take too long (depending on the configuration setting) so it's not a
>>> good idea to do it. You may want to increase the traffic sampling
>>> period.
>>>
>>> In case you are curious, look at the _measure_speed function in the
>>> SessionManager class (mediacontrol.py file). That function is called
>>> recurrently each traffic_sample_rate seconds, that's why is not a
>>> good
>>> idea for it to take long making the calculation.
>>>
>>>
>>> Regards,
>>>
>>> --
>>> Saúl Ibarra Corretgé
>>> AG Projects
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>
>
> --
> Dan
>
>
>
>
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
More information about the Users
mailing list