On 2/19/26 10:12 PM, Ondřej Kuzník wrote:
On Thu, Feb 19, 2026 at 09:13:57PM +0530, Pirate Praveen wrote:
On 2/19/26 6:57 PM, Ondřej Kuzník wrote:
It could be related to actual (TLS?) startup which doesn't happen for
slap* tool setup. If you start slapd by hand with `-d config` (or `-d
any` if you want full output) does anything new show up on stderr? If it
does start up just fine, then I'd look the way of how it's started
(selinux/apparmor/... interference) as well but let's start from the
bottom.

Interestingly running slapd manually seems to work.

These are the steps I did,

1. delete olcTLSCipherSuite: NORMAL
2. Set olcSecurity: tls=0
3. Remove ldaps:/// from slapd -h in systemd service file
4. Update source.list and install slapd from trixie
4. start with slapd -d config -h "ldap:/// ldapi:///"
5. Add olcTLSCipherSuite: HIGH
6. Remove olcSecurity: tls=0

Still systemctl start slapd fails, but systemd still cannot start.

Manually running this same command (after creating the directories and
adjusting permissions) works fine, but somehow systemd is failing to start
it.

# cat /etc/systemd/system/slapd.service.d/override.conf
[Service]
ExecStart=
ExecStartPre=/bin/mkdir -p /var/run/slapd
ExecStartPre=/bin/chown openldap:openldap /var/run/slapd
ExecStart=/usr/sbin/slapd -h "ldap:/// ldapi:///" -F /etc/ldap/slapd.d -u
openldap -g openldap

If it starts up from the shell, then it definitely sounds like an issue
with how systemd sets up the environment. Likely sandboxing or something
similar. Add -d to the ExecStart invocation (and potentially olcLogFile:
<path> to cn=config if you can't/don't want to read stderr) and see
where you get.

ExecStart=sh -c 'mkdir -p /run/slapd; \
        chown "$SLAPD_USER":"$SLAPD_GROUP" /run/slapd; \
        [ -d "$SLAPD_CONF" ] && confflag=-F || confflag=-f; \
        exec /usr/sbin/slapd -d0 \
                ${SLAPD_SERVICES:+-h "$SLAPD_SERVICES"} \
                ${SLAPD_USER:+-u "$SLAPD_USER"} \
                ${SLAPD_GROUP:+-g "$SLAPD_GROUP"} \
                ${SLAPD_CONF:+$confflag "$SLAPD_CONF"} \
                $SLAPD_OPTIONS'

I think /run/slapd vs /var/run/slapd in override file was conflicting.

After removing the override, slapd is starting now.

I think we still need to document how to actually do the migration if someone has set a value for olcTLSCipherSuites.

My draft for this document (I think this should be included in trixie in a stable update and referenced in release notes:

Since cipher suite names are not compatible between GNUtls and OpenSSL, if you have set any value for this variable, you will need to delete this variable before the upgrade, and set a suitable value after the upgrade is completed.

If you don't remove any incompatible options, you will see this error in slapd logs after the upgrade and slapd service will fail to start.

main: TLS init def ctx failed: -1 error:0A0000B9:SSL routines::no cipher match

You can run this command to see if any value is set,

ldapsearch -Y EXTERNAL
 -H ldapi:/// -b cn=config -s base|grep olcTLSCipherSuite

For example, if you have set this to NORMAL, you need to create an ldif file

# cat delete-ciphersuite.ldif
dn: cn=config
changetype: modify
delete: olcTLSCipherSuite
olcTLSCipherSuite: NORMAL

and run
ldapmodify -Y EXTERNAL -H ldapi:/// -f ./delete-ciphersuite.ldif

You can set a suitable value compatible with OpenSSL after the upgrade.

# cat add-ciphersuite.ldif
dn: cn=config
changetype: modify
add: olcTLSCipherSuite
olcTLSCipherSuite: HIGH

ldapmodify -Y EXTERNAL -H ldapi:/// -f ./add-ciphersuite.ldif

You might want to remove
/etc/systemd/system/slapd.service.d/override.conf as runtime directories are now handled correctly in the systemd service file.


What does systemctl cat slapd.service say? Is there anything in the
kernel audit logs to indicate apparmor issues (and what does aa-status
say about slapd?)

Regards,


Attachment: OpenPGP_0x8F53E0193B294B75.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to