Oracle | systemd, dbus, $ORACLE_HOME/lib and undefined symbol: XML_SetHashSalt
If you have a CentOS or Fedora system with Oracle installed, and the system doesn't come up after a reboot (in my case it just hung with nothing obvious happening), it's highly likely you've added $ORACLE_HOME/lib
to /etc/ld.so.conf
(or preferably as a separate file under /etc/ld.so.conf.d/
), which means Oracle's version of the libexpat
library is prioritized, but this is lacking the XML_SetHashSalt
symbol required by dbus, meaning the whole systemd
caboodle just falls over and dies.
The precise error (from /var/log/messages
) was:
dbus-daemon: /usr/bin/dbus-daemon: symbol lookup error: /usr/bin/dbus-daemon: undefined symbol: XML_SetHashSalt
The solution is simply to remove the entry from /etc/ld.so.conf
or wherever and run ldconfig
before rebooting the system.
Provision of the Oracle library path will then have be done at individual user level with e.g.
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
(yes, we know it's considered harmful).
Hat-tip to Laurenz Albe (of oracle_fdw fame) in this Stackoverflow question: Fedora Linux cannot boot after installing Oracle XE 18.4