[Home]

Summary:ASTERISK-28440: pjsip: configure does not detect LibreSSL
Reporter:Reuben Farrelly (reuben)Labels:pjsip
Date Opened:2019-06-09 01:54:56Date Closed:
Priority:MinorRegression?Yes
Status:Open/NewComponents:pjproject/pjsip Resources/res_pjsip
Versions:16.4.0 Frequency of
Occurrence
Constant
Related
Issues:
Environment:Gentoo Linux (updated daily), x86-64 VMAttachments:( 0) config.log
( 1) pjproject-config.log
Description:There seems to be a new regression in pjsip in Asterisk 16.x.  The build runs successfully to completion, but there is an issue at runtime which is preventing pjsip from starting.

Here's the startup log:

[Jun  9 16:10:03] Asterisk 16.4.0 built by portage @ supercell on a x86_64 running Linux on 2019-06-09 06:07:01 UTC
[Jun  9 16:10:03] NOTICE[28908] loader.c: 295 modules will be loaded.
[Jun  9 16:10:03] NOTICE[28908] cdr.c: CDR simple logging enabled.
[Jun  9 16:10:03] WARNING[28908] res_phoneprov.c: Unable to find a valid server address or name.
[Jun  9 16:10:03] NOTICE[28908] res_smdi.c: No SMDI interfaces are available to listen on, not starting SMDI listener.
[Jun  9 16:10:03] NOTICE[28908] chan_skinny.c: Configuring skinny from skinny.conf
[Jun  9 16:10:03] ERROR[28908] ari/config.c: No configured users for ARI
[Jun  9 16:10:03] NOTICE[28908] confbridge/conf_config_parser.c: Adding default_menu menu to app_confbridge
[Jun  9 16:10:03] NOTICE[28908] cel_custom.c: No mappings found in cel_custom.conf. Not logging CEL to custom CSVs.
[Jun  9 16:10:03] WARNING[28908] loader.c: Some non-required modules failed to load.
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_refer.so', missing dependencies: res_pjsip, res_pjsip_session, res_pjsip_pubsub
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_empty_info.so', missing dependencies: res_pjsip, res_pjsip_session
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_pubsub.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_transport_websocket.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_one_touch_record_info.so', missing dependencies: res_pjsip, res_pjsip_session
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_sdp_rtp.so', missing dependencies: res_pjsip, res_pjsip_session
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_session.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_sips_contact.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_pidf_body_generator.so', missing dependencies: res_pjsip, res_pjsip_pubsub
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_header_funcs.so', missing dependencies: res_pjsip, res_pjsip_session
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_endpoint_identifier_ip.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_diversion.so', missing dependencies: res_pjsip, res_pjsip_session
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_path.so', missing dependencies: res_pjsip, res_pjsip_session
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_messaging.so', missing dependencies: res_pjsip, res_pjsip_session
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_pidf_eyebeam_body_supplement.so', missing dependencies: res_pjsip, res_pjsip_pubsub
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_xpidf_body_generator.so', missing dependencies: res_pjsip, res_pjsip_pubsub
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_outbound_publish.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_outbound_authenticator_digest.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_endpoint_identifier_anonymous.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_mwi.so', missing dependencies: res_pjsip, res_pjsip_pubsub
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip.so': /usr/lib64/asterisk/modules/res_pjsip.so: undefined symbol: pj_ssl_cipher_name
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_acl.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'func_pjsip_endpoint.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_pidf_digium_body_supplement.so', missing dependencies: res_pjsip, res_pjsip_pubsub
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_logger.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_rfc3326.so', missing dependencies: res_pjsip, res_pjsip_session
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_authenticator_digest.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_phoneprov_provider.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_mwi_body_generator.so', missing dependencies: res_pjsip, res_pjsip_pubsub
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_dialog_info_body_generator.so', missing dependencies: res_pjsip, res_pjsip_pubsub
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'func_pjsip_aor.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_publish_asterisk.so', missing dependencies: res_pjsip, res_pjsip_outbound_publish, res_pjsip_pubsub
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_registrar.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_t38.so', missing dependencies: res_pjsip, res_pjsip_session
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_send_to_voicemail.so', missing dependencies: res_pjsip, res_pjsip_session
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_dlg_options.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'chan_pjsip.so': /usr/lib64/asterisk/modules/chan_pjsip.so: undefined symbol: ast_sip_cli_traverse_objects
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'func_pjsip_contact.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_dtmf_info.so', missing dependencies: res_pjsip, res_pjsip_session
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_exten_state.so', missing dependencies: res_pjsip, res_pjsip_pubsub, res_pjsip_outbound_publish
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_notify.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_history.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_config_wizard.so': /usr/lib64/asterisk/modules/res_pjsip_config_wizard.so: undefined symbol: ast_sip_get_sorcery
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_outbound_registration.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_caller_id.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_nat.so', missing dependencies: res_pjsip, res_pjsip_session
[Jun  9 16:10:03] ERROR[28908] loader.c: Error loading module 'res_pjsip_endpoint_identifier_user.so', missing dependency: res_pjsip
[Jun  9 16:10:03] ERROR[28908] loader.c: cel_sqlite3_custom declined to load.
[Jun  9 16:10:03] ERROR[28908] loader.c: cdr_syslog declined to load.
[Jun  9 16:10:03] ERROR[28908] loader.c: cdr_sqlite3_custom declined to load.

Further investigation suggests that it is the res_pjsip.so which is failing to load.

If I manually attempt to load it there is a more interesting error:

supercell*CLI> module load res_pjsip.so
Unable to load module res_pjsip.so
Command 'module load res_pjsip.so' failed.
[Jun  9 16:11:25] ERROR[28997]: loader.c:281 module_load_error: Error loading module 'res_pjsip.so': /usr/lib64/asterisk/modules/res_pjsip.so: undefined symbol: pj_ssl_cipher_name
supercell*CLI>

This error does not occur with Asterisk 15.7.2 (and earlier versions) but so far occurs with 16.3.0 and 16.4.0.  I haven't tested earlier 16.x releases.  In my testing I have compiled with identical configure options, and on the exact same system for both.  The problem is 100% reproducible.

The system has LibreSSL-2.9.2 as the SSL provider (with all versions, including those that work).

I posted this on the Asterisk Community Forum about 2 weeks ago but didn't receive a response:
https://community.asterisk.org/t/pjsip-module-error-undefined-symbol-pj-ssl-cipher-name/79365

A full and verbose startup log is posted at https://drive.google.com/file/d/14A4gXC8WRxFE7Zig2PVa-BulzvGY5IEw/view

This bug is currently preventing me from migration from Asterisk 15.7.2 to version 16.
Comments:By: Asterisk Team (asteriskteam) 2019-06-09 01:54:57.075-0500

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

Please note that once your issue enters an open state it has been accepted. As Asterisk is an open source project there is no guarantee or timeframe on when your issue will be looked into. If you need expedient resolution you will need to find and pay a suitable developer. Asking for an update on your issue will not yield any progress on it and will not result in a response. All updates are posted to the issue when they occur.

By: Chris Savinovich (csavinovich) 2019-06-12 11:42:03.295-0500

Hello Reuben.  It sounds like a problem with your version of pjproject. Are you using the same pjproject from your previous version? You should delete pjproject and make sure you are using the one that comes with Asterisk 16.4. If the problem persists, let us know. (and do send us the commands you use from compiling)
Chris


By: Reuben Farrelly (reuben) 2019-06-12 19:42:06.843-0500

Hi Chris,

Yes - for both I was using pjproject-2.8.  

Gentoo has a policy of not using bundled versions, but for the purposes of this test I have compiled from pristine 16.4.0 source code (no patches) and without the Gentoo pjproject package even being installed, and instead only using the bundled version that is pulled in as part of the Asterisk build.

Configure options:

./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --docdir=/usr/share/doc/asterisk-16.4.0 --htmldir=/usr/share/doc/asterisk-16.4.0/html --libdir=/usr/lib64 --localstatedir=/var --with-crypto --with-gsm=internal --with-popt --with-ssl --with-z --with-opus --with-jansson-bundled --with-pjproject-bundled --with-cap --with-gmime --without-newt --without-portaudio

I've seen the same problem on two different (almost identical) systems.

Thanks,
Reuben


By: Joshua C. Colp (jcolp) 2019-06-17 04:59:28.954-0500

Can you please attach the output of config.log? Are you doing this as part of an ebuild or outside of it?

By: Reuben Farrelly (reuben) 2019-06-17 08:21:01.094-0500

config.log as requested.

By: Reuben Farrelly (reuben) 2019-06-17 08:21:57.606-0500

I've tried building both ways - initially started with an ebuild, but discovered the same issue exists even if built entirely from source/tarball without any packaging or other patches to the source.

By: Joshua C. Colp (jcolp) 2019-06-17 08:28:59.113-0500

What version of OpenSSL is in use?

By: Joshua C. Colp (jcolp) 2019-06-17 08:30:14.838-0500

Oh, and attaching third-party/pjproject/source/config.log would also be useful to see the detection of OpenSSL in pjproject.

By: Reuben Farrelly (reuben) 2019-06-17 08:47:01.786-0500

I'm not using OpenSSL - I'm using the system installed LibreSSL 2.9.2 (see bug description).  There are no other SSL providers on this system.  This version of LibreSSL works without issues on other versions of Asterisk I've tested too (specifically 13 and 15).

By: Reuben Farrelly (reuben) 2019-06-17 08:47:32.086-0500

pjproject config.log as requested

By: Alexander Traud (traud) 2020-04-16 06:00:43.292-0500

In your {{./configure}} you use {{--with-ssl}}. Please, remove that and try again. If that solved your issue, this issue here is a duplicate of ASTERISK-28758. If that did not help, please, double-check which is/was the latest working version for you. I am confused that it is Asterisk 15.7. I would have expected Asterisk 15.5 in case of ASTERISK-28758 or Asterisk 15.6 in case of ASTERISK-28059. In any case, please, comment. I might have a look at it.

By: Reuben Farrelly (reuben) 2020-04-16 07:33:22.617-0500

I haven't tested with 15.x and 16.x for some time now.  Last time I did so both of those major versions experienced this issue.

I have however tested and presently run 17.x releases - and the issue does not appear to be present in that line of code.  Asterisk builds and runs fine on this release with exactly the same options and exactly the same environment.  I've completed at least two upgrades within 17.x now and have not seen the issue since, so I've come to the conclusion that something committed in 17.x has resolved the problem (but I don't know what...).

By: Alexander Traud (traud) 2020-04-16 07:56:58.760-0500

Well, when Asterisk 16.10 is released give it a try again as it fixes ASTERISK-28758.
With Asterisk 16.5, PJProject 2.9 was [introduced|https://github.com/asterisk/asterisk/commit/694097ee68c25e8cb58f44e68e09e19283870010]. Perhaps that was the solution. Or did you try Asterisk 16.5?