whiks 1.0.3 plays well with dev-libs/libressl-2.5.0, I get with fast_tls-1.0.6 (and .7 too) : mr-fox jabber # cat error.log 2016-12-21 20:28:22.142 [error] <0.107.0> failed to load TLS driver: undefined symbol: OPENSSL_cleanup 2016-12-21 20:28:22.142 [error] <0.107.0> CRASH REPORT Process <0.107.0> with 0 neighbours exited with reason: {open_error,-10} in gen_server:init_it/6 line 344 2016-12-21 20:28:22.145 [error] <0.106.0> Supervisor fast_tls_sup had child fast_tls started with fast_tls:start_link() at undefined exit with reason {open_error,-10} in context start_error 2016-12-21 20:28:22.145 [critical] <0.38.0>@ejabberd:exit_or_halt:133 failed to start application 'fast_tls': {error, {{shutdown, {failed_to_start_child,fast_tls, {open_error,-10}}}, {fast_tls_app,start,[normal,[]]}}} 2016-12-21 20:28:22.145 [error] <0.104.0> CRASH REPORT Process <0.104.0> with 0 neighbours exited with reason: {{shutdown,{failed_to_start_child,fast_tls,{open_error,-10}}},{fast_tls_app,start,[normal,[]]}} in application_master:init/4 line 134 mr-fox jabber # emerge --info fast_tls Portage 2.3.0 (python 3.4.5-final-0, hardened/linux/amd64, gcc-4.9.4, glibc-2.22-r4, 4.8.15-hardened x86_64) ================================================================= System Settings ================================================================= System uname: Linux-4.8.15-hardened-x86_64-Intel-R-_Core-TM-_i7-3930K_CPU_@_3.20GHz-with-gentoo-2.3 KiB Mem: 65285560 total, 3131776 free KiB Swap: 67108860 total, 67097560 free Timestamp of repository gentoo: Wed, 21 Dec 2016 19:03:04 +0000 sh bash 4.3_p48-r1 ld GNU ld (Gentoo 2.25.1 p1.1) 2.25.1 app-shells/bash: 4.3_p48-r1::gentoo dev-lang/perl: 5.22.3_rc4::gentoo dev-lang/python: 2.7.12::gentoo, 3.4.5::gentoo dev-util/pkgconfig: 0.28-r2::gentoo sys-apps/baselayout: 2.3::gentoo sys-apps/openrc: 0.22.4::gentoo sys-apps/sandbox: 2.10-r1::gentoo sys-devel/autoconf: 2.69::gentoo sys-devel/automake: 1.14.1::gentoo, 1.15::gentoo sys-devel/binutils: 2.25.1-r1::gentoo sys-devel/gcc: 4.9.4::gentoo sys-devel/gcc-config: 1.7.3::gentoo sys-devel/libtool: 2.4.6-r2::gentoo sys-devel/make: 4.1-r1::gentoo sys-kernel/linux-headers: 4.4::gentoo (virtual/os-headers) sys-libs/glibc: 2.22-r4::gentoo Repositories: gentoo location: /usr/portage sync-type: git sync-uri: https://github.com/gentoo-mirror/gentoo.git priority: 1 local location: /usr/local/portage masters: gentoo priority: 2 ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -march=native" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -pipe -march=native" DISTDIR="/var/tmp/distfiles" EMERGE_DEFAULT_OPTS="--verbose-conflicts --keep-going=y --nospinner --tree --quiet-build" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs compress-build-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict test-fail-continue unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://ftp.halifax.rwth-aachen.de/gentoo/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo http://mirror.netcologne.de/gentoo/ http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j10" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" USE="acl amd64 berkdb bzip2 cli cracklib crypt cxx dnssec dri gdbm hardened iconv ipv6 justify libressl logrotate mbox mmx mmxext mod_irc mod_muc mod_statsdx modules multilib ncurses nls nptl openmp pam pax_kernel pcre pie png pwquality readline scrypt seccomp session sse sse2 sse3 sse4 sse4.1 sse4.2 ssl ssp tcpd threads tor-hardening tracepath traceroute truetype unicode urandom vim-syntax xattr xtpax zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" CURL_SSL="libressl" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby21" USERLAND="GNU" VIDEO_CARDS="amdgpu fbdev intel nouveau radeon radeonsi vesa dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON ================================================================= Package Settings ================================================================= dev-erlang/fast_tls-1.0.7::gentoo was built with the following: USE="libressl" ABI_X86="64"
just a little more log spam : mr-fox jabber # cat crash.log 2016-12-21 20:28:22 =ERROR REPORT==== failed to load TLS driver: undefined symbol: OPENSSL_cleanup 2016-12-21 20:28:22 =CRASH REPORT==== crasher: initial call: fast_tls:init/1 pid: <0.107.0> registered_name: [] exception exit: {{open_error,-10},[{gen_server,init_it,6,[{file,"gen_server.erl"},{line,344}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]} ancestors: [fast_tls_sup,<0.105.0>] messages: [] links: [<0.106.0>] dictionary: [] trap_exit: false status: running heap_size: 610 stack_size: 27 reductions: 493 neighbours: 2016-12-21 20:28:22 =SUPERVISOR REPORT==== Supervisor: {local,fast_tls_sup} Context: start_error Reason: {open_error,-10} Offender: [{pid,undefined},{id,fast_tls},{mfargs,{fast_tls,start_link,[]}},{restart_type,permanent},{shutdown,brutal_kill},{child_type,worker}] 2016-12-21 20:28:22 =CRASH REPORT==== crasher: initial call: application_master:init/4 pid: <0.104.0> registered_name: [] exception exit: {{{shutdown,{failed_to_start_child,fast_tls,{open_error,-10}}},{fast_tls_app,start,[normal,[]]}},[{application_master,init,4,[{file,"application_master.erl"},{line,134}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]} ancestors: [<0.103.0>] messages: [{'EXIT',<0.105.0>,normal}] links: [<0.103.0>,<0.7.0>] dictionary: [] trap_exit: true status: running heap_size: 376 stack_size: 27 reductions: 115 neighbours:
hah . and the test gave : ERROR: test ERROR: dev-erlang/fast_tls-1.0.7::gentoo failed (test phase): rebar eunit failed
Hehe, an "ebuild <foo> test" gives the culprit: implicit function declaration: >>> Compiling source in /var/tmp/portage/dev-erlang/fast_tls-1.0.6/work/fast_tls-1.0.6 ... ==> fast_tls-1.0.6 (compile) Compiled src/fast_tls_app.erl Compiled src/fast_tls_sup.erl Compiled src/fast_tls.erl Compiled src/p1_sha.erl INFO: sh info: cwd: "/var/tmp/portage/dev-erlang/fast_tls-1.0.6/work/fast_tls-1.0.6" cmd: cc -c -O2 -pipe -march=native -DHAS_ERTS_EXIT -O2 -pipe -march=native -Wall -g -Wall -fPIC -MMD -I"/usr/lib64/erlang/lib/erl_interface-3.8.2/include" -I"/usr/lib64/erlang/erts-7.3/include" c_src/fast_tls_drv.c -o c_src/fast_tls_drv.o Compiling c_src/fast_tls_drv.c c_src/fast_tls_drv.c: In function ‘tls_drv_finish’: c_src/fast_tls_drv.c:350:5: warning: implicit declaration of function ‘OPENSSL_cleanup’ [-Wimplicit-function-declaration] OPENSSL_cleanup(); ^ c_src/fast_tls_drv.c: In function ‘setup_dh’: c_src/fast_tls_drv.c:470:8: warning: implicit declaration of function ‘DH_set0_pqg’ [-Wimplicit-function-declaration] DH_set0_pqg(dh, dh_p, NULL, dh_g); ^ c_src/fast_tls_drv.c: In function ‘driver_init’: c_src/fast_tls_drv.c:956:29: warning: passing argument 1 of ‘CRYPTO_set_mem_functions’ from incompatible pointer type CRYPTO_set_mem_functions(our_alloc, our_realloc, our_free); ^ In file included from /usr/include/openssl/bio.h:69:0, from /usr/include/openssl/err.h:122, from c_src/fast_tls_drv.c:21: /usr/include/openssl/crypto.h:412:5: note: expected ‘void * (*)(size_t)’ but argument is of type ‘void * (*)(size_t, const char *, int)’ int CRYPTO_set_mem_functions(void *(*m)(size_t), void *(*r)(void *, size_t), void (*f)(void *)); ^ c_src/fast_tls_drv.c:956:40: warning: passing argument 2 of ‘CRYPTO_set_mem_functions’ from incompatible pointer type CRYPTO_set_mem_functions(our_alloc, our_realloc, our_free); ^ In file included from /usr/include/openssl/bio.h:69:0, from /usr/include/openssl/err.h:122, from c_src/fast_tls_drv.c:21: /usr/include/openssl/crypto.h:412:5: note: expected ‘void * (*)(void *, size_t)’ but argument is of type ‘void * (*)(void *, size_t, const char *, int)’ int CRYPTO_set_mem_functions(void *(*m)(size_t), void *(*r)(void *, size_t), void (*f)(void *)); ^ c_src/fast_tls_drv.c:956:53: warning: passing argument 3 of ‘CRYPTO_set_mem_functions’ from incompatible pointer type CRYPTO_set_mem_functions(our_alloc, our_realloc, our_free); ^ In file included from /usr/include/openssl/bio.h:69:0, from /usr/include/openssl/err.h:122, from c_src/fast_tls_drv.c:21: /usr/include/openssl/crypto.h:412:5: note: expected ‘void (*)(void *)’ but argument is of type ‘void (*)(void *, const char *, int)’ int CRYPTO_set_mem_functions(void *(*m)(size_t), void *(*r)(void *, size_t), void (*f)(void *)); ^ INFO: sh info: cwd: "/var/tmp/portage/dev-erlang/fast_tls-1.0.6/work/fast_tls-1.0.6" cmd: cc -c -O2 -pipe -march=native -DHAS_ERTS_EXIT -O2 -pipe -march=native -Wall -g -Wall -fPIC -MMD -I"/usr/lib64/erlang/lib/erl_interface-3.8.2/include" -I"/usr/lib64/erlang/erts-7.3/include" c_src/p1_sha.c -o c_src/p1_sha.o Compiling c_src/p1_sha.c INFO: Using specs [{spec,drv,"priv/lib/fast_tls_drv.so", ["c_src/fast_tls_drv.c"], ["c_src/fast_tls_drv.o"], []}, {spec,drv,"priv/lib/p1_sha.so", ["c_src/p1_sha.c"], ["c_src/p1_sha.o"], []}] INFO: sh info: cwd: "/var/tmp/portage/dev-erlang/fast_tls-1.0.6/work/fast_tls-1.0.6" cmd: cc c_src/fast_tls_drv.o -Wl,-O1 -Wl,--as-needed -lssl -lcrypto -Wl,-O1 -Wl,--as-needed -shared -L"/usr/lib64/erlang/lib/erl_interface-3.8.2/lib" -lerl_interface -lei -o priv/lib/fast_tls_drv.so INFO: sh info: cwd: "/var/tmp/portage/dev-erlang/fast_tls-1.0.6/work/fast_tls-1.0.6" cmd: cc c_src/p1_sha.o -Wl,-O1 -Wl,--as-needed -lssl -lcrypto -Wl,-O1 -Wl,--as-needed -shared -L"/usr/lib64/erlang/lib/erl_interface-3.8.2/lib" -lerl_interface -lei -o priv/lib/p1_sha.so INFO: No app_vars_file defined. >>> Source compiled. >>> Test phase: dev-erlang/fast_tls-1.0.6 ==> fast_tls-1.0.6 (eunit) INFO: sh info: cwd: "/var/tmp/portage/dev-erlang/fast_tls-1.0.6/work/fast_tls-1.0.6" cmd: cp -R src/fast_tls.erl src/fast_tls_app.erl src/fast_tls_sup.erl src/p1_sha.erl ".eunit" Compiled src/fast_tls_app.erl
solved upstream in 1.0.9 : https://github.com/processone/fast_tls/issues/13#issuecomment-268807406
fast_tls-1.0.9 is in the tree. Please test.
(In reply to Amadeusz Żołnowski from comment #5) oh, I run it since a week - works fine
FWIW I lost time in testing the new modules : b/c a "ejabberd restart" let ejabber crash with core dumps in /var/log/jabber due to the fact that a previous instance of "epmd" was still running. IMO restarting ejabberd should restart that thingy too, or ?
Well, not necessarily. If it's a restart because of upgrade - then yes, but if it's restart because of configuration change - no. It would make sense to add a message to each dev-erlang package that epmd should be restarted.