Zimbra LDAP error

Beim Start von Zimbra 7.1.1 unter CentOS 5.7 kommt es bisweilen zu Fehlern mit dem LDAP, die verhindern, dass Zimbra startet:

[root@zimbra ~]# /etc/init.d/zimbra restart
Host zimbra.frdom.local
Stopping stats...Done.
Stopping mta...Done.
Stopping spell...Done.
Stopping snmp...Done.
Stopping cbpolicyd...Done.
Stopping archiving...Done.
Stopping antivirus...Done.
Stopping antispam...Done.
Stopping imapproxy...Done.
Stopping memcached...Done.
Stopping mailbox...Done.
Stopping logger...Done.
Stopping zmconfigd...Done.
Stopping ldap...Done.
Host zimbra.frdom.local
Starting ldap...Done.
Failed.
Failed to start slapd. Attempting debug start to determine error.
bdb(): PANIC: fatal region error detected; run recovery
bdb_db_close: database "": txn_checkpoint failed: Invalid argument (22).
backend_startup_one (type=hdb, suffix=""): bi_db_open failed! (-30974)
bdb_db_close: database "": alock_close failed

Ich vermute, dass das mit Inkonsistenzen im LDAP zusammenhängt. Die Zimbra-Instanz läuft in einer VirtualBox auf OpenIndiana 151a und ich denke, dass der Fehler durch die Virtualisierung verursacht wird (möglicherweise Dateisystemprobleme auf dem Host oder Gastsystem oder Problem beim “sauberen” hoch- und runterfahren der VM). Ich hatte bisher nicht die Energie, die Zeit und den nötigen Durchblick, dass Problem zu analysieren. Deshalb hier erst einmal der Fix, der den LDAP repariert. Hat bis jetzt immer gut funktioniert (heilt evtl. auch andere LDAP-Datenbankfehler):

[root@zimbra ~]# su - zimbra
[zimbra@zimbra ~]$ cd /opt/zimbra/data/ldap/hdb/db
[zimbra@zimbra db]$ db_recover -v
Finding last valid log LSN: file: 4 offset 6038659
Recovery starting from [4][6038514]
Recovery complete at Tue Mar 6 16:43:08 2012
Maximum transaction ID 80000015 Recovery checkpoint [4][6038659]
[zimbra@zimbra db]$ logout

Wenn das geklappt hat kann Zimbra gestartet werden (habe hier restart benutzt):

root@zimbra ~]# /etc/init.d/zimbra restart
Host zimbra.frdom.local
Stopping stats...Done.
Stopping mta...Done.
Stopping spell...Done.
Stopping snmp...Done.
Stopping cbpolicyd...Done.
Stopping archiving...Done.
Stopping antivirus...Done.
Stopping antispam...Done.
Stopping imapproxy...Done.
Stopping memcached...Done.
Stopping mailbox...Done.
Stopping logger...Done.
Stopping zmconfigd...Done.
Stopping ldap...Done.
Host zimbra.frdom.local
Starting ldap...Done.
WARNING: Disk space below threshold for /opt/zimbra.
Starting zmconfigd...Done.
Starting logger...Done.
Starting mailbox...Done.
Starting memcached...Done.
Starting antispam...Done.
Starting antivirus...Done.
Starting snmp...Done.
Starting spell...Done.
Starting mta...Done.
Starting stats...Done.
[root@zimbra ~]# 

Et voila.