389

From A-Eskwiki
Jump to: navigation, search

389 Directory Server is een component van IPA.

Debugging

Er gebeuren af en toe gekke dingen met dirsrv. Om die gekke dingen te kunnen debuggen moet je de volgende dingen doen:

  • Installeer debuginfo: debuginfo-install 389-ds-base
  • Zorg ervoor dat suid-binaries een coredump mogen doen: sysctl -w fs.suid_dumpable=1
  • Voeg LimitCORE=infinity toe aan /etc/sysconfig/dirsrv.systemd en doe een systemctl daemon-reload
  • Herstart dirsrv: systemctl restart dirsrv.target

Als er nu problemen optreden waarbij 389 crasht wordt er een coredump gegenereerd in /var/log/dirsrv/slapd-$INSTANCENAME/core.$PID. Coredumps zijn leuk, maar zonder gdb heb je er vrij weinig aan. Gebruik de volgende commando's om (bruikbare) informatie te genereren uit de dump:

Beknopte stacktrace

gdb -ex 'set print frame-arguments' -ex 'set confirm off' -ex 'set pagination off' -ex 'thread apply all bt'\
-ex 'quit' /usr/sbin/ns-slapd /var/log/dirsrv/slapd-INSTANCENAME/core.PID > stacktrace.`date +%s`.txt 2>&1

Complete stacktrace

gdb -ex 'set print frame-arguments' -ex 'set confirm off' -ex 'set pagination off' -ex 'thread apply all bt full'\
-ex 'quit' /usr/sbin/ns-slapd /var/log/dirsrv/slapd-INSTANCENAME/core.PID > stacktrace.`date +%s`.txt 2>&1

Access log buffer

gdb -ex 'set print elements 0' -ex 'set confirm off' -ex 'set pagination off' -ex 'print loginfo.log_access_buffer.top'\
-ex 'quit' /usr/sbin/ns-slapd /var/log/dirsrv/slapd-INSTANCENAME/core.PID > access.buf 2>&1
# Maak de output leesbaar
sed -i -e 's/\\n/\n/g' access.buf