Files
asterisk/UPGRADE.txt
George Joseph 41eab5b3b8 backtrace: Refactor ast_bt_get_symbols so it doesn't crash
We've been seeing crashes in libbfd when we attempt to generate
a stack trace from multiple threads.  It turns out that libbfd
is NOT thread-safe.  It can cache the bfd structure and give it to
multiple threads without protecting itself.  To get around this,
we've added a global mutex around the bfd functions and also have
refactored the use of those functions to be more efficient and
to provide more information about inlined functions.

Also added a few more tests to test_pbx.c.  One just calls
ast_assert() and the other calls ast_log_backtrace().  Neither are
run by default.

WARNING:  This change necessitated changing the return value of
ast_bt_get_symbols() from an array of strings to a VECTOR of
strings.  However, the use of this function outside Asterisk is not
likely.

ASTERISK-28140

Change-Id: I79d02862ddaa2423a0809caa4b3b85c128131621
2018-11-19 05:48:42 -07:00

93 lines
3.8 KiB
Plaintext

===========================================================
===
=== Information for upgrading between Asterisk versions
===
=== These files document all the changes that MUST be taken
=== into account when upgrading between the Asterisk
=== versions listed below. These changes may require that
=== you modify your configuration files, dialplan or (in
=== some cases) source code if you have your own Asterisk
=== modules or patches. These files also include advance
=== notice of any functionality that has been marked as
=== 'deprecated' and may be removed in a future release,
=== along with the suggested replacement functionality.
===
=== UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2
=== UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4
=== UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6
=== UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8
=== UPGRADE-10.txt -- Upgrade info for 1.8 to 10
=== UPGRADE-11.txt -- Upgrade info for 10 to 11
=== UPGRADE-12.txt -- Upgrade info for 11 to 12
=== UPGRADE-13.txt -- Upgrade info for 12 to 13
=== UPGRADE-14.txt -- Upgrade info for 13 to 14
=== UPGRADE-15.txt -- Upgrade info for 14 to 15
===========================================================
From 16.0.0 to 16.1.0:
Core:
- ast_bt_get_symbols() now returns a vector of strings instead of an
array of strings. This must be freed with ast_bt_free_symbols.
New in 16.0.0:
app_fax:
- The app_fax module is now deprecated, users should migrate to the
replacement module res_fax.
app_macro:
- The app_macro module is now deprecated and by default it is no longer
built. Users should migrate to app_stack (Gosub). A warning is logged
the first time any Macro is used.
AMI:
- The ContactStatus and Status fields for the manager events ContactStatus
and ContactStatusDetail are now set to "NonQualified" when a contact exists
but has not been qualified.
- The ContactStatus event will no longer be sent by PJSIP when a device
refreshes its registration.
- The "Newexten" event is now part of the "dialplan" class. The documentation
for Asterisk 15 already specified this, but the implementation was actually
using the "call" class instead.
ARI:
- The ContactInfo event's contact_status field is now set to "NonQualified"
when a contact exists but has not been qualified.
Build System:
- MALLOC_DEBUG no longer has an effect on Asterisk's ABI. Asterisk built
with MALLOC_DEBUG can now successfully load binary modules built without
MALLOC_DEBUG and vice versa. Third-party pre-compiled modules no longer
need to have a special build with it enabled.
- Asterisk now depends on libjansson >= 2.11. If this version is not
available on your distro you can use `./configure --with-jansson-bundled`.
chan_dahdi:
- Timeouts for reading digits from analog phones are now configurable in
chan_dahdi.conf: firstdigit_timeout, interdigit_timeout, matchdigit_timeout.
cdr_syslog:
- The cdr_syslog module is now deprecated and by default it is no longer
built.
res_config_sqlite:
- The res_config_sqlite module is now deprecated, users should migrate to the
replacement module res_config_sqlite3.
res_monitor:
- The res_monitor module is now deprecated, users should migrate to the
replacement module app_mixmonitor.
Core:
- libedit is no longer available as an embedded library and must be provided
by the system.
- The module loader now enforces inter-module dependencies. This ensures that
a module is not started before another it depends on, even if preload is used.
If a dependency is not available or fails to startup this will block any
dependants from startup.
- Parts of the Asterisk core which can load configuration from realtime are now
built-in modules. It is no longer necessary to preload realtime drivers as
they are always initialized before the built-in modules.