is there a link named: 
  
/usr/lib/aarch64-linux-gnu/libkea-dhcpsrv.so.145 ? 
  
  
  
ls -la /usr/lib/aarch64-linux-gnu/ 
  
  
 
 

-----Original Message-----

From: Razvan <[email protected]>
To: Kea <[email protected]>
Date: Friday, 20 February 2026 10:00 AM EET
Subject: Re: [Kea-users] kea-dhcp4 service failing to start with 'cannot open 
shared object file'

 
 
  
 
thank you for the output. will look into it. 
  
also attach the output of the  ./kea-dhcp4 -W 
  
I am suspecting this is a compilation issue with no relocation capabilities 
..aka -fPIC for dynamic libs. 
  
Thank you 
  
  
 
 
From: duress <[email protected]>
To: Kea <[email protected]>
Cc: duress <[email protected]>
Date: Friday, 20 February 2026 9:50 AM EET
Subject: Re: [Kea-users] kea-dhcp4 service failing to start with 'cannot open 
shared object file'

 
Output of strace -f attached. 

Regarding the reference to libkea-dhcpsrv.sp, my presumption has been that that 
file is mentioned because it is what's trying to load libdhcp_ha.so, but i 
can't say i know that for certain. 
ldd of libkea-dhcpsrv.so also reports no errors: 

root@diorite:/etc/kea# ldd /usr/lib/aarch64-linux-gnu/libkea-dhcpsrv.so 
       linux-vdso.so.1 (0x0000ffffbf2cd000) 
       libmysqlclient.so.21 => /lib/aarch64-linux-gnu/libmysqlclient.so.21 
(0x0000ffffbe8c0000) 
       libpq.so.5 => /lib/aarch64-linux-gnu/libpq.so.5 (0x0000ffffbe840000) 
       libkea-process.so.57 => /lib/aarch64-linux-gnu/libkea-process.so.57 
(0x0000ffffbe7e0000) 
       libkea-eval.so.52 => /lib/aarch64-linux-gnu/libkea-eval.so.52 
(0x0000ffffbe770000) 
       libkea-dhcp_ddns.so.41 => /lib/aarch64-linux-gnu/libkea-dhcp_ddns.so.41 
(0x0000ffffbe700000) 
       libkea-stats.so.29 => /lib/aarch64-linux-gnu/libkea-stats.so.29 
(0x0000ffffbe6c0000) 
       libkea-dhcp++.so.74 => /lib/aarch64-linux-gnu/libkea-dhcp++.so.74 
(0x0000ffffbe590000) 
       libkea-hooks.so.78 => /lib/aarch64-linux-gnu/libkea-hooks.so.78 
(0x0000ffffbe540000) 
       libkea-mysql.so.53 => /lib/aarch64-linux-gnu/libkea-mysql.so.53 
(0x0000ffffbe500000) 
       libkea-pgsql.so.53 => /lib/aarch64-linux-gnu/libkea-pgsql.so.53 
(0x0000ffffbe4b0000) 
       libkea-database.so.48 => /lib/aarch64-linux-gnu/libkea-database.so.48 
(0x0000ffffbe460000) 
       libkea-cc.so.54 => /lib/aarch64-linux-gnu/libkea-cc.so.54 
(0x0000ffffbe3f0000) 
       libkea-asiolink.so.56 => /lib/aarch64-linux-gnu/libkea-asiolink.so.56 
(0x0000ffffbe370000) 
       libkea-cryptolink.so.38 => 
/lib/aarch64-linux-gnu/libkea-cryptolink.so.38 (0x0000ffffbe340000) 
       libkea-log.so.48 => /lib/aarch64-linux-gnu/libkea-log.so.48 
(0x0000ffffbe2f0000) 
       libkea-util.so.68 => /lib/aarch64-linux-gnu/libkea-util.so.68 
(0x0000ffffbe270000) 
       libkea-exceptions.so.23 => 
/lib/aarch64-linux-gnu/libkea-exceptions.so.23 (0x0000ffffbe240000) 
       libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 
(0x0000ffffbdfb0000) 
       libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffbddf0000) 
       /lib/ld-linux-aarch64.so.1 (0x0000ffffbf280000) 
       libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 
(0x0000ffffbddb0000) 
       libssl.so.3 => /lib/aarch64-linux-gnu/libssl.so.3 (0x0000ffffbdce0000) 
       libcrypto.so.3 => /lib/aarch64-linux-gnu/libcrypto.so.3 
(0x0000ffffbd860000) 
       libresolv.so.2 => /lib/aarch64-linux-gnu/libresolv.so.2 
(0x0000ffffbd830000) 
       libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffffbd7f0000) 
       libzstd.so.1 => /lib/aarch64-linux-gnu/libzstd.so.1 (0x0000ffffbd730000) 
       libgssapi_krb5.so.2 => /lib/aarch64-linux-gnu/libgssapi_krb5.so.2 
(0x0000ffffbd6c0000) 
       libldap.so.2 => /lib/aarch64-linux-gnu/libldap.so.2 (0x0000ffffbd640000) 
       libkea-cfgclient.so.51 => /lib/aarch64-linux-gnu/libkea-cfgclient.so.51 
(0x0000ffffbd5d0000) 
       libkea-dns++.so.42 => /lib/aarch64-linux-gnu/libkea-dns++.so.42 
(0x0000ffffbd4c0000) 
       liblog4cplus-2.0.so.3 => /lib/aarch64-linux-gnu/liblog4cplus-2.0.so.3 
(0x0000ffffbd420000) 
       libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffbd370000) 
       libkrb5.so.3 => /lib/aarch64-linux-gnu/libkrb5.so.3 (0x0000ffffbd290000) 
       libk5crypto.so.3 => /lib/aarch64-linux-gnu/libk5crypto.so.3 
(0x0000ffffbd240000) 
       libcom_err.so.2 => /lib/aarch64-linux-gnu/libcom_err.so.2 
(0x0000ffffbd210000) 
       libkrb5support.so.0 => /lib/aarch64-linux-gnu/libkrb5support.so.0 
(0x0000ffffbd1e0000) 
       liblber.so.2 => /lib/aarch64-linux-gnu/liblber.so.2 (0x0000ffffbd1b0000) 
       libsasl2.so.2 => /lib/aarch64-linux-gnu/libsasl2.so.2 
(0x0000ffffbd170000) 
       libgnutls.so.30 => /lib/aarch64-linux-gnu/libgnutls.so.30 
(0x0000ffffbcf50000) 
       libkea-http.so.56 => /lib/aarch64-linux-gnu/libkea-http.so.56 
(0x0000ffffbce50000) 
       libkeyutils.so.1 => /lib/aarch64-linux-gnu/libkeyutils.so.1 
(0x0000ffffbce20000) 
       libp11-kit.so.0 => /lib/aarch64-linux-gnu/libp11-kit.so.0 
(0x0000ffffbcc50000) 
       libidn2.so.0 => /lib/aarch64-linux-gnu/libidn2.so.0 (0x0000ffffbcc10000) 
       libunistring.so.5 => /lib/aarch64-linux-gnu/libunistring.so.5 
(0x0000ffffbca40000) 
       libtasn1.so.6 => /lib/aarch64-linux-gnu/libtasn1.so.6 
(0x0000ffffbca00000) 
       libnettle.so.8 => /lib/aarch64-linux-gnu/libnettle.so.8 
(0x0000ffffbc990000) 
       libhogweed.so.6 => /lib/aarch64-linux-gnu/libhogweed.so.6 
(0x0000ffffbc920000) 
       libgmp.so.10 => /lib/aarch64-linux-gnu/libgmp.so.10 (0x0000ffffbc880000) 
       libffi.so.8 => /lib/aarch64-linux-gnu/libffi.so.8 (0x0000ffffbc850000) 
 
On 02/20/2026 8:31 AM CET Razvan Becheriu <[email protected]> wrote: 
  
  
 
please run stract -f -o outout ./kea-dhcp4 -c ... and attach the output. 
  
(no filter on paths)Thank you, 
  
Razvan 
 
 

From: Razvan <[email protected]> 
To: Kea <[email protected]> 
Date: Friday, 20 February 2026 9:27 AM EET 
Subject: Re: [Kea-users] kea-dhcp4 service failing to start with 'cannot open 
shared object file' 

 
 
what is this: 
  
HOOKS_OPEN_ERROR failed to open hook library libdhcp_ha.so: 
libkea-dhcpsrv.so.14 
  
why does it mention libkea-dhcpsrv.so ? 
  
ldd on this lib then 
 
  
 
 

From: duress <[email protected]> 
To: Kea <[email protected]> 
Cc: duress <[email protected]> 
Date: Friday, 20 February 2026 9:18 AM EET 
Subject: Re: [Kea-users] kea-dhcp4 service failing to start with 'cannot open 
shared object file' 

 
I tried truncating the library path value to just the file base name: 
  <...>   "library": "libdhcp_ha.so",   <...> 
the changed path value was reflected in the error message I got after starting 
the service again, but it didn't seem to improve the issue at all: 
  Feb 19 23:08:23 diorite kea-dhcp4[4551]: ERROR HOOKS_OPEN_ERROR failed to 
open hook library libdhcp_ha.so: libkea-dhcpsrv.so.145: cannot open shared 
object file: No such file or directory 


I don't see any issues loading dependencies for libdhcp_ha.so, and there's an 
error as expected for the nonexistent file. 

root@diorite:/etc/kea# ldd 
/usr/local/lib/aarch64-linux-gnu/kea/hooks/libdhcp_ha.so  
        linux-vdso.so.1 (0x0000ffff83b55000) 
        libkea-dhcpsrv.so.145 => 
/usr/local/lib/aarch64-linux-gnu/libkea-dhcpsrv.so.145 (0x0000ffff83650000) 
        libkea-process.so.104 => 
/usr/local/lib/aarch64-linux-gnu/libkea-process.so.104 (0x0000ffff835e0000) 
        libkea-stats.so.64 => 
/usr/local/lib/aarch64-linux-gnu/libkea-stats.so.64 (0x0000ffff83590000) 
        libkea-config.so.96 => 
/usr/local/lib/aarch64-linux-gnu/libkea-config.so.96 (0x0000ffff834f0000) 
        libkea-http.so.99 => /usr/local/lib/aarch64-linux-gnu/libkea-http.so.99 
(0x0000ffff833a0000) 
        libkea-dhcp.so.124 => 
/usr/local/lib/aarch64-linux-gnu/libkea-dhcp.so.124 (0x0000ffff831f0000) 
        libkea-hooks.so.134 => 
/usr/local/lib/aarch64-linux-gnu/libkea-hooks.so.134 (0x0000ffff83190000) 
        libkea-cc.so.95 => /usr/local/lib/aarch64-linux-gnu/libkea-cc.so.95 
(0x0000ffff83110000) 
        libkea-asiolink.so.102 => 
/usr/local/lib/aarch64-linux-gnu/libkea-asiolink.so.102 (0x0000ffff83070000) 
        libkea-log.so.86 => /usr/local/lib/aarch64-linux-gnu/libkea-log.so.86 
(0x0000ffff83020000) 
        libkea-util.so.116 => 
/usr/local/lib/aarch64-linux-gnu/libkea-util.so.116 (0x0000ffff82f80000) 
        libkea-exceptions.so.55 => 
/usr/local/lib/aarch64-linux-gnu/libkea-exceptions.so.55 (0x0000ffff82f50000) 
        libcrypto.so.3 => /lib/aarch64-linux-gnu/libcrypto.so.3 
(0x0000ffff82ad0000) 
        libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 
(0x0000ffff82840000) 
        libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 
(0x0000ffff82800000) 
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff82640000) 
        /lib/ld-linux-aarch64.so.1 (0x0000ffff83b10000) 
        libkea-eval.so.97 => /usr/local/lib/aarch64-linux-gnu/libkea-eval.so.97 
(0x0000ffff82590000) 
        libkea-dhcp_ddns.so.79 => 
/usr/local/lib/aarch64-linux-gnu/libkea-dhcp_ddns.so.79 (0x0000ffff82510000) 
        libkea-database.so.87 => 
/usr/local/lib/aarch64-linux-gnu/libkea-database.so.87 (0x0000ffff824c0000) 
        libkea-cryptolink.so.75 => 
/usr/local/lib/aarch64-linux-gnu/libkea-cryptolink.so.75 (0x0000ffff82490000) 
        libkea-cfgrpt.so.3 => 
/usr/local/lib/aarch64-linux-gnu/libkea-cfgrpt.so.3 (0x0000ffff82460000) 
        libssl.so.3 => /lib/aarch64-linux-gnu/libssl.so.3 (0x0000ffff82390000) 
        libkea-dns.so.83 => /usr/local/lib/aarch64-linux-gnu/libkea-dns.so.83 
(0x0000ffff822a0000) 
        libkea-log-interprocess.so.4 => 
/usr/local/lib/aarch64-linux-gnu/libkea-log-interprocess.so.4 
(0x0000ffff82270000) 
        liblog4cplus-2.0.so.3 => /lib/aarch64-linux-gnu/liblog4cplus-2.0.so.3 
(0x0000ffff821d0000) 
        libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff82120000) 

root@diorite:/etc/kea# ldd 
/usr/local/lib/aarch64-linux-gnu/kea/hooks/libdhcp_nosuchfile.so 
ldd: /usr/local/lib/aarch64-linux-gnu/kea/hooks/libdhcp_nosuchfile.so: No such 
file or directory 
   
 
On 02/20/2026 6:44 AM CET Razvan Becheriu <[email protected]> wrote: 
  
  
 
  
 
can you run: 
 ldd /usr/local/lib/aarch64-linux-gnu/kea/hooks/libdhcp_nosuchfile.so

and

ldd /usr/local/lib/aarch64-linux-gnu/kea/hooks/libdhcp_ha.so

check that all dependencies can be resolved.

Regards,
Razvan   



  
 
 

From: Razvan <[email protected]> 
To: Kea <[email protected]> 
Date: Friday, 20 February 2026 7:37 AM EET 
Subject: Re: [Kea-users] kea-dhcp4 service failing to start with 'cannot open 
shared object file' 

 
 
Hi, 
  
Kea can load hook libraries from default path just by specifying the hook name: 
  
 "library": "libdhcp_nosuchfile.so"  
 
  
You can try this and see if it is any different. 
I'll try to replicate the issue using my rpi. Will let you know how it goes. 
  
Regards, 
Razvan 
  
 
 
 

From: Andrew <[email protected]> 
To: kea-users <[email protected]> 
Cc: Andrew <[email protected]> 
Date: Friday, 20 February 2026 12:34 AM EET 
Subject: [Kea-users] kea-dhcp4 service failing to start with 'cannot open 
shared object file' 

 
Hi, I'm trying to set up a hot-standby redundant dhcp server for my home 
network and I'm having a real struggle trying to get the kea-dhcp4 daemon to 
find and load the libdhcp_ha.so library hook so that it can run in HA mode. 
It's working great when I don't ask it to load the HA library hook, but I'm not 
having any luck with loading the .so. When I try to start the official 
ubuntu-package-provided kea-dhcp4-server systemd service, it reports the 
following: 
ERROR HOOKS_OPEN_ERROR failed to open hook library 
/usr/local/lib/aarch64-linux-gnu/kea/hooks/libdhcp_nosuchfile.so: 
/usr/local/lib/aarch64-linux-gnu/kea/hooks/libdhcp_nosuchfile.so: cannot open 
shared object file: No such file or directory 

 
I believe the issue being reported by the service in my system logs is actually 
something other than a failed read operation on the listed path, and I can 
explain my reasoning for drawing this conclusion. 
I am hoping someone with the patience to read all this can suggest something I 
should try that I haven't thought of yet, or point out an error that I've made, 
that will help me get my HA pair online! thanks in advance for your attention. 

Here's a list of the things I have tried so far to fix this issue in 
approximate chronological order: 
 
 
  - I manually confirmed that the file exists, by copying the full file name 
and path directly from the error message and pasting it into the terminal. the 
file exists. 

 
  - checked the unix file permissions on the .so itself (at 
/usr/local/lib/aarch64-linux-gnu/kea/hooks/libdhcp_sh.so), and also of each 
directory in that file path all the way down to /usr. 
all have mode o+r set, and I have confirmed that I can read the contents of the 
file from a shell running as the kea user (_kea on my system). it is not a file 
permissions error. 

 
  - checked for enhanced access control subsystems. selinux is not installed on 
this server. apparmor is installed, and when I checked my kernel log I found 
that apparmor was reporting some blocked access to the library hook file in 
question. 
I addressed these by updating the apparmor profile for /usr/sbin/kea-dhcp4, 
which required adding explicit permits for the r and m masks. 
I made these changes by hand at first, then reset and used the aa-genprof tool 
from the official apparmor-utils package which generated the same set of 
changes I had applied by hand. These changes fixed the apparmor permissions 
conflict that was reported in my kernel log. 
I confirmed that apparmor was no longer responsible for blocking access to the 
file by shutting off apparmor protections system-wide, which did not fix the 
issue. 

 
  - I copied the target .so file to a new directory under /etc/kea/lib/, and 
updated the service configs and the apparmor profile to point at this new file 
location. 
The service continued to report that it cannot open the file because it does 
not exist, this time naming the new path under /etc/kea/lib/. I again 
copy-pasted the path from the error message to ensure I hadn't made any errors 
in my typing. 
This didn't produce any positive results, so I reverted the configs to point to 
the default path to avoid unnecessary complication in further debugging. 

 
  - I found the presented troubleshooting advice in the official 
kea-dhcp4-server install guide from ISC, which indicates that in cases exactly 
like the one I was dealing with, one should run ldconfig with root permissions 
to update the linker cache. I did this. 
I checked that the directory path containing the library was listed in a file 
under /etc/ld.so.conf.d/. I checked that /etc/ld.so.conf.d/ was correctly 
included in /etc/ld.so.conf. I ran ldconfig again as root while explicitly 
passing the directory immediately containing the .do file. 
I ran ldconfig -p | grep to confirm that the desired shared object file was 
present in the cache, and that it was indexed at the expected file path, which 
it was. 
Out of pure superstition, I even rebooted the server and checked again -- still 
present in the cache at the correct path. 

 
  - I opened the systemd service unit file to look for clues about any 
restricted filesystem access, system call capabilities, or anything else of 
this nature. I didn't find any in the unit file for this service. 

 
  - I explicitly added 
LD_LIBRARY_PATH=/usr/local/lib/aarch64-linux-gnu/kea/hooks to the service's 
environment variables exposed by systemd, then reloaded the systemd daemon to 
read the unit file changes. no help. 

 
  - I inserted strace into the unit file exec line to report any system calls 
related to the target file, reloaded the systemd daemon, and attempted to start 
the service again. 
For comparison, I edited the service config at /etc/kea/kea-dhcp4.conf and the 
strace invocation in the service unit file to look for a known-bogus .so file 
in the same directory, reloaded the daemon again, and started the service 
again. 
Comparing the strace output from the two calls, there is a clear difference 
between the system calls and results reported by strace. In the output from the 
service start with a known-bad file path, strace reports a single openat() 
system call to the expected file, which as expected returns -1 with errno 
ENOENT. 
By comparison, the strace output from the service start with configs pointing 
to the real .so file which should be accessible to the service shows 6 system 
calls related to the .so file in question: openat(), read(), fstat(), mmap(), 
mmap(), close(). none of these system calls are shown to have errored with an 
associated errno code, or to have returned with a negative value.  
At this point I'm not really sure where to go, I am intimidated by the prospect 
of trying to dive into the kea-dhcp codebase and figure out what is reporting 
an ENOENT-related error message when there (seemingly, to my eyes) doesn't seem 
to be any such error occurring. 
  
I am using binaries and config files as provided from the Ubuntu repos (24.04, 
arm64), running on a raspberry pi 5, unmodified except as mentioned above and 
for miscellaneous config changes to /etc/kea/kea-dhcp4.conf to suit the needs 
of my network. 

The debian packages I'm using are as follows: 
ii  kea-admin                              2.4.1-3ubuntu0.1                     
   arm64        Administration utilities for Kea DHCP server 
ii  kea-common                             2.4.1-3ubuntu0.1                     
   arm64        Common libraries for the Kea DHCP server 
ii  kea-dev                                2.4.1-3ubuntu0.1                     
   arm64        Development headers for Kea DHCP server 
ii  kea-dhcp4-server                       2.4.1-3ubuntu0.1                     
   arm64        IPv4 DHCP server 

The kea version number reported by the binary that shipped with the above 
packages is 3.1.5 

I am putting a copy of some relevant terminal buffers and config files up on my 
public webserver for reference, links to follow: 

(config files doctored to target a nonexistent libdhcp_nosuchfile.so) 
https://pdxlents.online/kea-dhcp4.conf.bad_configs.txt 
https://pdxlents.online/systemd_unit_file.bad_configs.txt 
https://pdxlents.online/terminal_log.bad_configs.txt 

(config files targeting an actually existing libdhcp_ha.so) 
https://pdxlents.online/kea-dhcp4.conf.good_configs.txt 
https://pdxlents.online/terminal_log.good_configs.txt 
https://pdxlents.online/systemd_unit_file.good_configs.txt 

(version output from my server binary) 
https://pdxlents.online/kea-dhcp4_-V.txt 

Thanks again for reading, and for any advice or suggestions!           -- 
ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information. 

To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users. 
[email protected]         -- 
ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information. 

To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users. 
[email protected]       
-- 
ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.

To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
[email protected]

Reply via email to