Commit Graph

31592 Commits

Author SHA1 Message Date
Corey Farrell
c6ee3cf639 loader: Flag module as declined in all cases where it fails to load.
This has no effect on startup since AST_MODULE_LOAD_FAILURE aborts
startup, but it's possible for this code to be returned on manual load
of a module after startup.

It is an error for a module to not have a load callback but this is not
a fatal system error.  In this case flag the module as declined, return
AST_MODULE_LOAD_FAILURE only if a required module is broken.

Expand doxygen documentation for AST_MODULE_LOAD_*.

Change-Id: I3c030bb917f6e5a0dfd9d91491a4661b348cabf8
2018-10-04 18:45:26 -05:00
George Joseph
6fd21a6af6 CI: Fix missing () in gates.jenkinsfile
Change-Id: I2f252e0f8c7f1a6328438fbd2be5d6574b7dfa5b
2018-10-04 13:04:04 -05:00
George Joseph
1598c7a306 CI: Add timestamps and timeouts to jenkinsfiles
Change-Id: Ide83574dc957bc1df28e30a69079140050dfc35f
2018-10-04 10:14:21 -05:00
Jenkins2
f9cc33c821 Merge "ast_coredumper: Remove .gdbinit file on exit" into 16 2018-10-04 10:00:21 -05:00
George Joseph
1debf9e484 Merge "jenkins: Fix cleanup command redirection." into 16 2018-10-04 09:42:17 -05:00
George Joseph
24f44474b6 Merge "CI: Use brace expansion instead of calling out to seq" into 16 2018-10-04 09:41:23 -05:00
George Joseph
48bac78f3e Merge "CI: Look up configured kernel.core_pattern sysctl" into 16 2018-10-04 08:54:46 -05:00
George Joseph
be88c768f4 Merge "astobj2: Comment on OBJ_NOLOCK in ao2_container_clone." into 16 2018-10-04 07:24:55 -05:00
George Joseph
99e05591fa Merge "http.c: Reload TLS even if http.conf hasn't changed" into 16 2018-10-04 07:24:34 -05:00
Sean Bright
b2f96fdcfe ast_coredumper: Remove .gdbinit file on exit
Change-Id: I1297de78628773ca368e687c6f148bf74857cae9
2018-10-03 17:03:05 -05:00
Sean Bright
d0a1237c19 CI: Look up configured kernel.core_pattern sysctl
Change-Id: I8246a0147df8d821fbbcabc1db1887104b8bedc4
2018-10-03 16:54:09 -05:00
Corey Farrell
48bb4543d9 jenkins: Fix cleanup command redirection.
Fix redirection to /dev/null of cleanup commands.  The '2' was being
interpreted as part of the command instead of part of the redirect.

Change-Id: I2e3a591b165e0288c4b82b9ef475fdfd5392a90a
2018-10-03 16:32:17 -05:00
George Joseph
d027d193b8 ast_coredumper: Don't use "declare -n"
Change-Id: I7ddfed4cd6549a0cd458e4d5cf9ac95d784de6cb
2018-10-03 15:30:13 -05:00
George Joseph
26123b01cb Merge "core/frame: Fix ast_frdup() and ast_frisolate() for empty text frames" into 16 2018-10-03 13:57:08 -05:00
George Joseph
161ad96c3e Merge "CI: Use bindport instead of port in test http.conf" into 16 2018-10-03 13:56:42 -05:00
Corey Farrell
fa9cd68589 astobj2: Comment on OBJ_NOLOCK in ao2_container_clone.
The test for OBJ_NOLOCK looks wrong but it isn't.  Add comments to
prevent confusion.

Change-Id: I9662b82eb39e7627a1f1944fd18f967a2b987344
2018-10-03 11:03:39 -05:00
George Joseph
aae29f38ea Merge "loader: Fix result of module reload error." into 16 2018-10-03 10:19:40 -05:00
George Joseph
dae4c4c95d Merge "astobj2: Record lock usage to refs log when DEBUG_THREADS is enabled." into 16 2018-10-03 10:19:17 -05:00
George Joseph
e7b1de5150 Merge "core: Disable astobj2 locking for some common objects." into 16 2018-10-03 09:31:18 -05:00
George Joseph
0e93826e64 Merge "Resolve warning about duplicate 'dialplan' CLI." into 16 2018-10-03 09:28:44 -05:00
Sean Bright
8b3b504b79 CI: Use brace expansion instead of calling out to seq
Also make the shebang in publishAsteriskDocs.sh the first line.

Change-Id: I3fdd6f22e652e4fb5b5fe85df46fa34eb6d0cf08
2018-10-03 09:11:43 -05:00
Sean Bright
5f7350d68b CI: Use bindport instead of port in test http.conf
Change-Id: Ife9a6879da63a56e5b8348a2024eeed4e7b1615b
2018-10-03 09:00:50 -05:00
Sean Bright
2b4752911f http.c: Reload TLS even if http.conf hasn't changed
There is currently no way to indicate to Asterisk that TLS certificates
and/or keys have been updated other than by modifying http.conf or
restarting Asterisk.

There is already code in main/tcptls.c that determines if a reload is
actually necessary based on the hashes of the certicate and dependent
files, so this change merely gives us a way to request a reload without
explicitly modifying http.conf.

Change-Id: Ie795420dcc7eb3d91336820688a29adbcc321276
2018-10-03 08:35:08 -05:00
Corey Farrell
3b2310332d core: Disable astobj2 locking for some common objects.
* ACO options
* Indications
* Module loader ref_debug object
* Media index info and variants
* xmldoc items

These allocation locations were identified using reflocks.py on the
master branch.

Change-Id: Ie999b9941760be3d1946cdb6e30cb85fd97504d8
2018-10-03 03:21:42 -05:00
Corey Farrell
326574d4fc Resolve warning about duplicate 'dialplan' CLI.
Change-Id: I029db1b4a32ccfb38374d6fe944dc430866f4b30
2018-10-02 13:28:23 -05:00
Corey Farrell
65f06a4505 loader: Fix result of module reload error.
When a module reload fails we never set AST_MODULE_RELOAD_ERROR.  This
caused reload failures to incorrectly report 'No module found'.

Change-Id: I5f3953e0f7d135e53ec797f24c97ee3f73f232e7
2018-10-02 13:14:14 -05:00
Corey Farrell
f066dbc353 loader: Improve error handling.
* Display list of unavailable dependencies when they cause another
  module to fail loading.
* When a module declines to load find all modules which depend on it so
  they can be declined and listed together.
* Prevent retry of declined modules during startup.
* When a module fails to dlopen try loading it with RTLD_LAZY so we can
  attempt to display the list of missing dependencies.

These changes are meant to reduce logger spam that is caused when a
module has many dependencies and declines to load.  This also fixes some
error paths which failed to recognize required modules.

Module load/start errors are delayed until the end of loader startup.

Change-Id: I046052c71331c556c09d39f47a3b92975f3e1758
2018-10-02 12:21:31 -05:00
neutrino88
406c5bef0a core/frame: Fix ast_frdup() and ast_frisolate() for empty text frames
If a channel creates an AST_TEXT_FRAME with datalen == 0, the ast_frdup()
and ast_frisolate() functions could create a clone frame with an invalid
data.ptr which would cause a crash.  The proposed fix is to make sure that
for such empty text frames, ast_frdup() and ast_frisolate() return cloned
text frames with a valid data.ptr.

ASTERISK-28076
Reported by: Emmanuel BUU
Tested by: Emmanuel BUU

Change-Id: Ib882dd028598f13c4c233edbfdd7e54ad44a68e9
2018-10-02 11:25:17 -05:00
Joshua Colp
b351b903b9 Merge "Append CHANGES/UPGRADE.txt for module loader changes." into 16 2018-10-02 08:46:15 -05:00
Joshua Colp
c69e5cd764 Merge "app_queue.c: Fix json ref leak" into 16 2018-10-02 07:59:32 -05:00
Corey Farrell
693e00eee6 astobj2: Record lock usage to refs log when DEBUG_THREADS is enabled.
When DEBUG_THREADS is enabled we can know if the astobj2 mutex / rwlock
was ever used, so it can be recorded in the REF_DEBUG destructor entry.

Create contrib/scripts/reflocks.py to process locking used by
allocator.  This can be used to identify places where
AO2_ALLOC_OPT_LOCK_NOLOCK should be used to reduce memory usage.

Change-Id: I2e3cd23336a97df2692b545f548fd79b14b53bf4
2018-10-01 21:45:48 -05:00
Corey Farrell
5a9230eacb app_page: Add dependency against app_confbridge.
Change-Id: I1946509f518961d23fb21229d91676ee3e441921
2018-10-01 12:12:45 -05:00
Richard Mudgett
a2554d5e5a app_queue.c: Fix json ref leak
Declining the queue_member_status_type stasis message in stasis.conf
causes these messages to leak json objects.

* Add missing ast_json_unref() if the type is NULL in
queue_publish_member_blob().

ASTERISK-28084

Change-Id: I691ecf49bd1f7d9c29182e1eee8c4bb7103be9fc
2018-10-01 11:46:28 -05:00
Jenkins2
42b1e197c8 Merge "jansson-bundled: Add patches to improve json_pack error reporting." into 16 2018-10-01 10:17:01 -05:00
Jenkins2
68fe182e4f Merge "astobj2: Reduce memory overhead." into 16 2018-10-01 09:03:07 -05:00
George Joseph
8c72cd8459 Merge "lock: Improve performance of DEBUG_THREADS." into 16 2018-10-01 08:36:47 -05:00
Joshua Colp
339e248524 Merge "configure.ac: Check for unbound version >= 1.5" into 16 2018-10-01 07:18:58 -05:00
Joshua Colp
81fca7f7ac Merge "res_pjsip: improve realtime performance on CLI 'pjsip show contacts'" into 16 2018-10-01 06:51:15 -05:00
Joshua Colp
ddbd902edf Merge "app_confbridge: Use bridge join hook to send join and leave events" into 16 2018-10-01 06:24:10 -05:00
Joshua Colp
c87945c25d Merge "res_stasis: Fix stale data in ARI bridges" into 16 2018-10-01 04:34:59 -05:00
Corey Farrell
266ed3d68b Append CHANGES/UPGRADE.txt for module loader changes.
Change-Id: Ib8db4e14187f5c11ecbff532df17d30c5d36fa3e
2018-10-01 04:18:43 -04:00
Alexei Gradinari
ab90479642 res_pjsip: improve realtime performance on CLI 'pjsip show contacts'
CLI command 'pjsip show contacts' inefficiently make a lot of DB requests.

For example if there are 10k aors then asterisk requests these 10k records
of aor and then does 10k requests of contact - one request per aor.

Even if use 'like <pattern>' the asterisk requests all aor's and contact's
records and then filters them by itself.

This patch gathers contact's container by
- retrieving all dynamic contacts by regex (filtered by reg_server)
- retrieving all aors with permanent contacts
- finally filters container by regex

ASTERISK-28077 #close

Change-Id: Id0ad65d14952a02fb213273a90f3f680a8149618
2018-09-28 17:09:22 -05:00
Corey Farrell
3337fe85c5 jansson-bundled: Add patches to improve json_pack error reporting.
Change-Id: I045e420d5e73e60639079246e810da6ae21ae22b
2018-09-28 14:56:15 -05:00
Corey Farrell
b3b95c8d36 lock: Improve performance of DEBUG_THREADS.
Add a volatile flag to lock tracking structures so we only need to use
the global lock when first initializing tracking.

Additionally add support for DEBUG_THREADS_LOOSE_ABI.  This is used by
astobj2.c to eliminate storage for tracking fields when DEBUG_THREADS is
not defined.

Change-Id: Iabd650908901843e9fff47ef1c539f0e1b8cb13b
2018-09-28 13:42:27 -05:00
George Joseph
0ad987168e Merge "config.c: Cleanup AST_INCLUDE_GLOB" into 16 2018-09-28 13:16:41 -05:00
Kevin Harwell
2ee1c0cec8 Merge "res_odbc: fix missing SQL error diagnostic" into 16 2018-09-28 10:39:00 -05:00
George Joseph
60754fb806 Merge "astobj2: Fix shutdown order." into 16 2018-09-28 08:34:46 -05:00
George Joseph
15f91a4789 Merge "app_queue: Fix Attended transfer hangup with removing pending member." into 16 2018-09-28 07:48:59 -05:00
George Joseph
b4ab26e72f app_confbridge: Use bridge join hook to send join and leave events
The first attempt at publishing confbridge events to participants
involved publishing them at the same time stasis events were
created.  This caused issues with bridge and channel locks.  The
second attempt involved publishing them when the stasis events
were received by the code that published the confbridge AMI events.
This caused timing issues because, depending on resources available,
the event could be received before channels actually joined the
bridge and would therefore fail to send messages to the participant.

This attempt reverts to the original mechanism with one exception.
The join and leave events are published via bridge join and leave
hooks.  This guarantees the states of the channels and bridge and
provides deterministic timing for event publishing.

Change-Id: I2660074f8a30a5224cb953d5e047ee84484a9036
2018-09-28 06:32:39 -06:00
George Joseph
de43d25716 Merge "res_rtp_asterisk.c: Add "seqno" strictrtp option" into 16 2018-09-28 07:28:39 -05:00