huh, yeah, you're right.
you know, I'd noticed that both paths were showing up, but I think i just 
assumed one was a symlink to the other and didn't actually check...

root@diorite:/usr/sbin# stat 
/usr/local/lib/aarch64-linux-gnu/libkea-dhcpsrv.so.145
  File: /usr/local/lib/aarch64-linux-gnu/libkea-dhcpsrv.so.145 -> 
libkea-dhcpsrv.so.145.0.0
  Size: 25              Blocks: 0          IO Block: 4096   symbolic link
Device: 179,2   Inode: 390224      Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2026-02-19 06:19:39.372553824 -0800
Modify: 2026-02-13 22:16:56.281120351 -0800
Change: 2026-02-13 22:16:56.281120351 -0800
 Birth: 2026-02-13 22:16:56.281120351 -0800


> On 02/20/2026 9:13 AM CET Razvan Becheriu <[email protected]> wrote:
>  
>  
> I think the issue is that there are 2 paths:
>  
> /usr/local/lib/aarch64-linux-gnu/libkea-dhcpsrv.so
>  
> and
>  
> /usr/lib/aarch64-linux-gnu/libkea-dhcpsrv.so
>  
> one exists and one does not
>  
> kea seems to load the existing one but ha hook lib requires the other path.
>  
>  
>  
> 
> > ---------------------------------------------
> > From: Razvan <[email protected]>
> > To: Kea <[email protected]>
> > Date: Friday, 20 February 2026 10:09 AM EET
> > Subject: Re: [Kea-users] kea-dhcp4 service failing to start with 'cannot 
> > open shared object file'
> > 
> > I can't find the strace output attached. maybe the file is too large.
> >  
> > can you share it using some other way?
> >  
> > thx
> >  
> > 
> > > ---------------------------------------------
> > > From: Razvan <[email protected]>
> > > To: Kea <[email protected]>
> > > Date: Friday, 20 February 2026 10:08 AM EET
> > > Subject: Re: [Kea-users] kea-dhcp4 service failing to start with 'cannot 
> > > open shared object file'
> > > 
> > >  
> > > is there a link named:
> > >  
> > > /usr/lib/aarch64-linux-gnu/libkea-dhcpsrv.so.145 ?
> > >  
> > >  
> > >  
> > > ls -la /usr/lib/aarch64-linux-gnu/
> > >  
> > >  
> > > 
> > > > ---------------------------------------------
> > > > 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]
> 
-- 
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