Summary:ASTERISK-01265: [patch] Misc stability fixes
Reporter:Tilghman Lesher (tilghman)Labels:
Date Opened:2004-03-22 12:47:46.000-0600Date Closed:2011-06-07 14:00:59
Versions:Frequency of
Environment:Attachments:( 0) 20040322__misc_stability_fixes.diff.txt
Description:These are fixes made to a production system over time.  Most are extra checks to deal with unexpected NULLs.  _ALL_ of these caused crashes at some time or another.
Comments:By: Paul Cadach (pcadach) 2004-03-22 13:55:09.000-0600

You could process frames with payload type 19 as regular Comfort Noise frames (payload type 13), not just ignore them (but you will have a lot of warnings). At least Cisco's gateways allows to configure CN to use payload type 13 or 19.

By: Tilghman Lesher (tilghman) 2004-03-22 14:08:04.000-0600

The IETF recommendations state that payload type 19 is reserved and is not to be used.  However, Asterisk should silently accept and discard these packets to maintain compatibility with non-compliant devices.

By: Mark Spencer (markster) 2004-03-22 14:57:13.000-0600

These are all bandaids for races.  Hiding them only means they'll show up less frequently, which is *worse* because it means they won't get fixed.  We need to fix the root causes, not work arounds to make them less likely.

By: Tilghman Lesher (tilghman) 2004-04-01 18:47:58.000-0600

I agree that some of these are bandaids and probably shouldn't be applied (the usleep chief among them).

However, several of the other fixes are sanity checks for public functions.  Static functions are a separate matter.  But public functions should be able to be called with a NULL in the wrong place and not segfault.  (A reasonable alternative would be to die gracefully, if no better solution is appropriate.)

By: Mark Spencer (markster) 2004-04-02 01:48:19.000-0600

These are highly illogical changes though.  ast_queue_frame is called quite frequently and should be as efficient as possible.