Difference between revisions of "389"

From A-Eskwiki
Jump to: navigation, search
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
389 Directory Server is een component van [[IPA]].
 +
 
== Debugging ==
 
== Debugging ==
  
Line 13: Line 15:
  
 
  gdb -ex 'set print frame-arguments' -ex 'set confirm off' -ex 'set pagination off' -ex 'thread apply all bt'\
 
  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
+
-ex 'quit' /usr/sbin/ns-slapd /var/log/dirsrv/slapd-INSTANCENAME/core.PID > stacktrace.`date +%s`.txt 2>&1
  
 
'''Complete stacktrace'''
 
'''Complete stacktrace'''
  
 
  gdb -ex 'set print frame-arguments' -ex 'set confirm off' -ex 'set pagination off' -ex 'thread apply all bt full'\
 
  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
+
-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
 
[[Category:Sysop]] [[Category:Software]]
 
[[Category:Sysop]] [[Category:Software]]

Latest revision as of 17:00, 23 June 2015

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