BIND 9.11.10 crashes with SIGBUS in isc_siphash24()
Summary
BIND 9.11.10 compiled fine on Solaris using Solaris Studio Compiler, just like previous 9.11 releases did. However, when starting BIND, it crashed shortly after initialization with a SIGBUS error.
BIND version used
BIND 9.11.10 (Extended Support Version) <id:9390ecc>
running on SunOS sun4v 5.11 11.3
compiled by Solaris Studio 5150
compiled with OpenSSL version: OpenSSL 1.1.1c 28 May 2019
linked to OpenSSL version: OpenSSL 1.1.1c 28 May 2019
compiled with libxml2 version: 2.9.5
linked to libxml2 version: 20905
compiled with libjson-c version: 0.12
linked to libjson-c version: 0.12
compiled with zlib version: 1.2.11
linked to zlib version: 1.2.11
threads support is enabled
===============================================================================
Configuration summary:
-------------------------------------------------------------------------------
Optional features enabled:
Multiprocessing support (--enable-threads)
Mutex lock type: adaptive
Large-system tuning (--with-tuning)
GSS-API (--with-gssapi)
Algorithm: siphash24
IPv6 support (--enable-ipv6)
OpenSSL cryptography/DNSSEC (--with-openssl)
Python tools (--with-python)
XML statistics (--with-libxml2)
JSON statistics (--with-libjson)
HTTP zlib compression (--with-zlib)
ECDSA algorithm support (--with-ecdsa)
EDDSA algorithm support (--with-eddsa)
Print backtrace on crash (--enable-backtrace)
Use symbol table for backtrace, named only (--enable-symtable)
Dynamically loadable zone (DLZ) drivers:
None
-------------------------------------------------------------------------------
Features disabled or unavailable on this platform:
Allow 'dnstap' packet logging (--enable-dnstap)
GeoIP2 access control (--with-geoip2)
Allow 'fixed' rrset-order (--enable-fixed-rrset)
PKCS#11/Cryptoki support (--with-pkcs11)
Native PKCS#11/Cryptoki support (--enable-native-pkcs11)
GOST algorithm support (--with-gost)
Use libseccomp system call filtering (--enable-seccomp)
Very verbose query trace logging (--enable-querytrace)
Use GNU libtool (--with-libtool)
CMocka Unit Testng Framework (--with-cmocka)
LMDB database to store configuration for 'addzone' zones (--with-lmdb)
IDN support (--with-libidn2)
-------------------------------------------------------------------------------
Configured paths:
prefix: /prod/bind9
sysconfdir: /etc
localstatedir: /var
-------------------------------------------------------------------------------
Compiler: /opt/developerstudio12.6/bin/cc -mt
cc: Warning: Option --version passed to ld, if ld is invoked, ignored otherwise
usage: cc [ options ] files. Use 'cc -flags' for details
===============================================================================
Steps to reproduce
Just try to start BIND
What is the current bug behavior?
Initialization seems to be working as normal but BIND is then crashing and dumping core shortly after these log messages appear in the log:
30-Aug-2019 14:06:43.764 notice: all zones loaded
30-Aug-2019 14:06:43.941 notice: running
What is the expected correct behavior?
Successful startup.
Relevant logs and/or screenshots
Output from debugger:
> ::status
debugging core file of named (64-bit)
file: /prod/bind9/sbin/named
initial argv: /prod/bind9/sbin/named -u named -t /chroot -c /etc/named.conf -d 5
threading model: native threads
status: process terminated by SIGBUS (Bus Error), addr=ffffffff7b5ff004
> ::stack
named`isc_siphash24+0x1f8(1029b17f0, ffffffff7b5ff004, 10, ffffffff7b5feff0, ffffffff7b5feff0, ff000000)
named`compute_cc+0xe8(115d81a40, ffffffff7b5ff17e, 8, ffffffff7b5ff1d0, ffffffff7b5ff1d0, 115d81a88)
named`resquery_send+0xdec(115d81a40, 113bcffc0, 113bcffc0, ffffffffffffffff, ffffffff7c103240, ff000000)
named`fctx_query+0x9e4(11568b420, 113bcffc0, 0, 0, 1, ffffffff7cf93904)
named`fctx_try+0x4d8(11568b420, 0, 0, ffffffff7c103240, ffffffff7c103240, ff000000)
named`fctx_start+0x61c(112b29cf0, 11568b4b0, 11568b4b0, 10043bc40, ffffffff7c103240, ff000000)
named`dispatch+0x924(1008426f0, 0, 0, ffffffff7c103240, ffffffff7c103240, ff000000)
named`run+0x18(1008426f0, 0, 0, 100684e50, 0, 1)
libc.so.1`_lwp_start(0, 0, 0, 0, 0, 0)
Possible fixes
There seem to have been some changes to isc_siphash24() between 9.11.9 and 9.11.10 so this seems to be the trigger for this issue.