Really? This is odd... I got a message, that flashed in my face that said something like '...is full. need room for 51, have 6' or something... Sure enough, I went to looking through the drive to see what was taking up so freakin' much room (80gig drive) so when I looked at how much room was left on the drive, I got more confused... [root@W5OMR /var/log/asterisk]# df -h Filesystem Size Used Avail Use% Mounted on /dev/hdb1 72G 1.7G 66G 3% / tmpfs 759M 0 759M 0% /dev/shm I looked.. and looked again. Yeah... that's 3% *currently being used*. But, still, the warning message was still there. WARNING[9667] chan_iax2.c: Out of space for ie 'Unknown IE' (54), need 51 have 6 Sooo... I went to Goggling. Index: iax2-parser.c =================================================================== RCS file: /usr/cvsroot/asterisk/channels/iax2-parser.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- iax2-parser.c 25 May 2004 15:16:45 -0000 1.21 +++ iax2-parser.c 13 Jun 2004 21:25:10 -0000 1.22 ~~~ /\/\/\/\ ~~~ int iax_ie_append_raw(struct iax_ie_data *ied, unsigned char ie, void *data, int datalen) { char tmp[256]; - if (datalen > (sizeof(ied->buf) - ied->pos)) { - snprintf(tmp, sizeof(tmp), "Out of space for ie '%s' (%d), need %d have %d\n", iax_ie2str(ie), ie, datalen, sizeof(ied->buf) - ied->pos); + if (datalen > ((int)sizeof(ied->buf) - ied->pos)) { + snprintf(tmp, (int)sizeof(tmp), "Out of space for ie '%s' (%d), need %d have %d\n", iax_ie2str(ie), ie, datalen, (int)sizeof(ied->buf) - ied->pos); errorf(tmp); return -1; } @@ -325,21 +325,21 @@ int iax_ie_append_addr(struct iax_ie_data *ied, unsigned char ie, struct sockaddr_in *sin) { - return iax_ie_append_raw(ied, ie, sin, sizeof(struct sockaddr_in)); + return iax_ie_append_raw(ied, ie, sin, (int)sizeof(struct sockaddr_in)); } WHAT Buffer is full? How can it be emptied? Is it hurting my system? Ok, ok... probably a little paranoid sounding on the last... but it -is- a [WARNING]... Whassup?
This is way beyond my understanding of Asterisk but it appears that an IE is an information element (username etc) and of course IAX is Inter-Asterisk eXchange, the Asterisk and Allstar linking protocol. Outside of the obvious reboot I don’t know how one would clear what appears to be the iax_ie buffer. I remember we found a bug where when a large number of nodes (say 100 or more) were connected app_rpt would crash. Jim fixed it by making some buffer larger. Perhaps that’s what your diff shows. I’ve been complaining to Jim about short uptimes so he build a compile for me with a command “memory show summary”. I set up a cron to log that every hour. Just before the last crash iax2-parser exploded in size. So I’m sure there is still a bug to be squashed. We’re exploring the squashing options at this time. -- Tim :wq On Dec 15, 2013, at 12:47 PM, Geoff <ars.w5omr@gmail.com> wrote:
Really? This is odd...
I got a message, that flashed in my face that said something like '...is full. need room for 51, have 6' or something...
Sure enough, I went to looking through the drive to see what was taking up so freakin' much room (80gig drive) so when I looked at how much room was left on the drive, I got more confused...
[root@W5OMR /var/log/asterisk]# df -h Filesystem Size Used Avail Use% Mounted on /dev/hdb1 72G 1.7G 66G 3% / tmpfs 759M 0 759M 0% /dev/shm
I looked.. and looked again. Yeah... that's 3% *currently being used*.
But, still, the warning message was still there.
WARNING[9667] chan_iax2.c: Out of space for ie 'Unknown IE' (54), need 51 have 6
Sooo... I went to Goggling.
Index: iax2-parser.c =================================================================== RCS file: /usr/cvsroot/asterisk/channels/iax2-parser.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- iax2-parser.c 25 May 2004 15:16:45 -0000 1.21 +++ iax2-parser.c 13 Jun 2004 21:25:10 -0000 1.22 ~~~ /\/\/\/\ ~~~
int iax_ie_append_raw(struct iax_ie_data *ied, unsigned char ie, void *data, int datalen) { char tmp[256]; - if (datalen > (sizeof(ied->buf) - ied->pos)) { - snprintf(tmp, sizeof(tmp), "Out of space for ie '%s' (%d), need %d have %d\n", iax_ie2str(ie), ie, datalen, sizeof(ied->buf) - ied->pos); + if (datalen > ((int)sizeof(ied->buf) - ied->pos)) { + snprintf(tmp, (int)sizeof(tmp), "Out of space for ie '%s' (%d), need %d have %d\n", iax_ie2str(ie), ie, datalen, (int)sizeof(ied->buf) - ied->pos); errorf(tmp); return -1; } @@ -325,21 +325,21 @@
int iax_ie_append_addr(struct iax_ie_data *ied, unsigned char ie, struct sockaddr_in *sin) { - return iax_ie_append_raw(ied, ie, sin, sizeof(struct sockaddr_in)); + return iax_ie_append_raw(ied, ie, sin, (int)sizeof(struct sockaddr_in)); }
WHAT Buffer is full?
How can it be emptied? Is it hurting my system?
Ok, ok... probably a little paranoid sounding on the last... but it -is- a [WARNING]...
Whassup?
_______________________________________________ App_rpt-users mailing list App_rpt-users@ohnosec.org http://ohnosec.org/cgi-bin/mailman/listinfo/app_rpt-users
On 12/15/2013 03:15 PM, Tim Sawyer wrote:
This is way beyond my understanding of Asterisk but it appears that an IE is an information element (username etc) and of course IAX is Inter-Asterisk eXchange, the Asterisk and Allstar linking protocol.
Outside of the obvious reboot I don’t know how one would clear what appears to be the iax_ie buffer. I remember we found a bug where when a large number of nodes (say 100 or more) were connected app_rpt would crash. Jim fixed it by making some buffer larger. Perhaps that’s what your diff shows.
I’ve been complaining to Jim about short uptimes so he build a compile for me with a command “memory show summary”. I set up a cron to log that every hour. Just before the last crash iax2-parser exploded in size. So I’m sure there is still a bug to be squashed. We’re exploring the squashing options at this time.
Thanks, Tim.
participants (2)
-
Geoff -
Tim Sawyer