We have been seeing the following errors in our logs for some time:

ERROR:core:pv_get_avp: local buffer length exceeded!

This error prints from multiple places in the code and we were not able to 
isolate the source until now. I have been able to consistently reproduce the 
error by calling avp_insert. It seems to happen every time I call it in a 
particular place, but I cannot identify the cause of the buffer issue.

Logs from an occurrence are here: https://pastebin.com/HvmrXqii

The relevant section of my config script is here: https://pastebin.com/301U1yY2

I am currently running 1.11.11, which I know is unsupported. But I am trying to 
determine whether it is an OpenSIPS issue or whether I am using this function 
in a way that is not intended.

I am trying to use it to push values onto the end of an AVP stack. According to 
the docs [1]:

“If the index is greater than the count of values the value will be inserted at 
the end.”

So I have selected an index that is known to always be greater than the number 
of elements (32) and am performing the insert at that index. I must do this 
because there does not seem to be any way in OpenSIPS to determine the number 
of values in an AVP except to traverse the entire list. I attempted to keep 
track of the number of items in the destination list using another variable, 
but avp_insert will not accept a variable as the index argument, only a number.

I also tried reading from the source AVP backwards, as opposed to putting them 
in the destination AVP backwards as I do now, but there is no way to indicate 
the last index of an AVP. The common method of using -1 as the index does not 
work with AVPs.

Any help would be appreciated.

[1]: http://www.opensips.org/html/docs/modules/1.11.x/avpops.html#idp5675600


Ben Newlin
Users mailing list

Reply via email to