http://git.gnome.org/browse/evolution-kolab/plain/art/logo/evo-kolab-small.pnghttp://git.gnome.org/browse/evolution-kolab/plain/art/logo/evo-kolab-lettering.png

evolution-kolab is a project to provide connectivity to Kolab groupware servers for Evolution.

evolution-kolab main page


evolution-kolab - Trouble Shooting (German)


Fehlersuche und Problembehebung

(Entwurfsversion)

Dies ist eine lose Sammlung von Hilfestellungen für die Fehlersuche und Problembehebung beim Betrieb von evolution-kolab. Entstanden ist diese Sammlung per cut-and-paste aus Email-Schriftverkehr zwischen den Entwicklern des Plugins und setzt an manchen Stellen einige Kenntnis im Umgang mit Entwicklungswerkzeugen voraus. Auch ist der Ausarbeitungsgrad dieses Dokuments aus diesem Grunde nicht so hoch wie der der restlichen Dokumente über evolution-kolab.

Aufgrund limitierter Ressourcen des evolution-kolab-Projektes können wir aktuell keine englischsprachige Version dieser Seite anbieten. Freiwillige sind jedoch herzlich eingeladen, eine Übersetzung in die englische Sprache vorzunehmen und dazu mit uns in Kontakt zu treten. Die Wiki-Seite Debugging and problem solving ist dafür vorgesehen.


Aktuelle Modellierung des Umgangs mit Ordner-Annotationen in evolution-kolab

Folgendes geschieht nach dem Verbindungsaufbau mit einem Kolab-Server:

  • evolution-kolab prüft alle auf dem Kolab-Server vorhandenen IMAP-Ordner für den konfigurierten IMAP-Zugang (u.a. auf das Vorliegen von
    • Ordner-Annotationen)
  • sieht evolution-kolab einen IMAP-Ordner zum ersten Mal, oder liegt für einen Ordner (noch) gar keine Typ-Annotation vor, versucht es,
    • die Typ-Annotation für diesen Ordner vom Server auszulesen
  • eine einmal ohne Fehler vom Server ausgelesene Annotation bleibt für diesen Ordner gespeichert

Verhalten des kolab2-Providers, der im Evolution-Frontend arbeitet und für den Email-Zugang verwendet wird:

  • zeigt alle Ordner an, die von einem der diversen Email-Typen sind, sowie diejenigen Ordner, die einen unbekannten/leeren Typ haben.
    • Alle Folder, die im Evolution-Frontend angelegt werden, erhalten den Typ "Email" als Annotation

Verhalten der kolab2-Provider, die in den Backends arbeiten und für Kontakte sowie Kalender verwendet werden:

  • das Adressbuch-Backend ignoriert alle Folder, die nicht einen Kontakte-Typ haben (default/non-default)
  • das Kalender-Backend ignoriert alle Folder, die nicht einen Kalender-Typ haben (default/non-default)
  • für alle PIM-Objekte wird beim Ablegen geprüft, ob der Folder, in dem sie abgelegt werden sollen, exakt den korrekten Typ haben
  • Objekte, deren Typ nicht mit dem des sie beinhaltenden Folders übereinstimmen, werden ignoriert (erzeugt eine Debug-Meldung des
    • Backends auf der Konsole)

Eine nachträgliche Änderung eines Ordner-Typs wird von evolution-kolab momentan noch ignoriert (die Kolab-Format-Spec fordert, dass der Typ, einmal vergeben, sich für die Lebensdauer des Folders nicht mehr ändern darf (Per Folder requirements)). Eine Typänderung von "leer" auf "nicht-leer" wird jederzeit berücksichtigt, dann aber auch wiederum nur ein Mal.


Debuggen der Backends

Das manuelle Stoppen und Starten der Backend-Factory-Prozesse (und damit des EDS) ist beschrieben im Abschnitt "Use the Kolab calendar and addressbook backends" in der Datei

evolution-kolab/docs/manuals/INSTALL-notes

in den Quellen von evolution-kolab (zugreifbar z.B. über das Projekt-Gitweb).

Folgende Umgebungsvariablen sind für das Debugging hilfreich:

  • CAMEL_DEBUG (setzt das Debugging-Level für die libcamel, welche für den Email-Transport verwendet wird. Maximalsetting ist

    • CAMEL_DEBUG=all) (Verwendung u.a. auch für einen Lauf mit gdb)

  • G_SLICE (wird zweckmäßigerweise auf G_SLICE=always_malloc für einen Lauf der Backends unter valgrind verwendet)

Die Backend-Prozesse können damit in einem Terminal gestartet und ihre Ausgaben verfolgt werden. Ebenso kann das Evolution-Frontend auf die gleiche Weise aus einem Terminal heraus gestartet werden.

Die Debug-Ausgaben des Kalender-Backends können wie folgt in eine Datei umgeleitet werden (Pfade ggfs. an die vorliegende Installation anpassen):

LANG=C CAMEL_DEBUG=all /usr/lib/evolution/e-calendar-factory > calendar-factory.log 2>&1

Für das Adressbuch-Backend entsprechend:

LANG=C CAMEL_DEBUG=all /usr/lib/evolution/e-addressbook-factory > addressbook-factory.log 2>&1

Vor dem Starten muss sichergestellt sein, dass nicht noch einer dieser Prozesse läuft. Nach dem Beenden von Evolution beenden sich die Backendprozesse, sofern einmal auf sie zugegriffen wurde (falls man z.B. den Addressbook-View nicht aktiv hatte, läuft das Adressbuchbackend weiter).


Überprüfen und Aufräumen der Caches und Metadaten von evolution-kolab

Hat man sich mit den Metadaten oder den Cache-Inhalten irgendwie in eine verfahrene Situation gebracht, kann man sich momentan wie folgt behelfen:

Zunächst muss Evolution mit samt den Backends (d.h. den Factory-Prozessen) beendet werden (siehe dazu die Hinweise im Abschnitt Debugging).

In

~/.evolution/<addressbook|calendar|mail>/kolab2/<accountname>

liegen die Caches für die (PIM-)Emails und die Metadaten darüber. Für einen einfachen tabula rasa löscht man einfach rekursiv das jeweilige 'kolab2/'-Verzeichnis, oder das Unterverzeichnis mit dem jeweiligen Account direkt unter 'kolab2/', wo etwas durcheinander geraten ist.

Nun kann man Evolution neu starten. Die Verzeichnisse, Caches und Metadaten werden dann neu angelegt und die Daten sowie Metadaten komplett neu vom Server gezogen. Die Konfigurationsdaten für die bereits eingerichteten (PIM-)Ordner bleiben davon unberührt und müssen nicht neu eingegeben werden.

ACHTUNG: Keinesfalls sollte zur Fehlerbehebung das gesamte ~/.evolution-Verzeichnis gelöscht werden! Es ist mitnichten so, dass alle Konfigurations- und Arbeitsdaten von Evolution (v2.30) unter ~/.evolution/ liegen. Die Arbeitsdaten (plus Caches und Metadaten) sind dort zu finden, sämtliche Konfigurationseinstellungen für Evolution (d.h. auch die Accountdaten) liegen aber in der GNOME GConf Datenbank, die sich nicht unter ~/.evolution/ befindet. Die GConf Datenbank kann mit gconftool (Kommandozeile) oder gconf-editor (GUI) eingesehen und verändert werden. Wird das ~/.evolution-Verzeichnis gelöscht, und sind beteits Evolution-Einträge in der GConf Datenbank vorhanden, werden diese Einträge nicht automatisch angepasst bzw. neu geschrieben und Evolution startet/läuft u.U. nicht mehr richtig!

Um zu sehen, welche Typ-Information evolution-kolab über die Ordner auf dem Kolab-Server gesammelt hat, kann man im Verzeichnis

~/.evolution/<addressbook|calendar|mail>/kolab2/<accountname>

den Befehl

sqlitebrowser folders_metadata.db

die Folder und ihre Typen checken (folders.db ist Camel-Infrastruktur, die restlichen *.db-Files stammen von evolution-kolab). Das Mapping der Typen auf die Typnummern in der SQLiteDB ist

typedef enum {
        KOLAB_FOLDER_TYPE_INVAL = 0,            /* 00 */
        /* Mail-IMAPX (Evo) */
        KOLAB_FOLDER_TYPE_UNKNOWN,              /* 01 */
        KOLAB_FOLDER_TYPE_EMAIL,                /* 02 */
        KOLAB_FOLDER_TYPE_EMAIL_INBOX,          /* 03 */
        KOLAB_FOLDER_TYPE_EMAIL_DRAFTS,         /* 04 */
        KOLAB_FOLDER_TYPE_EMAIL_SENTITEMS,      /* 05 */
        KOLAB_FOLDER_TYPE_EMAIL_JUNKEMAIL,      /* 06 */
        /* Cal-IMAPX (ECal-Backend) */
        KOLAB_FOLDER_TYPE_EVENT,                /* 07 */
        KOLAB_FOLDER_TYPE_EVENT_DEFAULT,        /* 08 */
        KOLAB_FOLDER_TYPE_JOURNAL,              /* 09 */
        KOLAB_FOLDER_TYPE_JOURNAL_DEFAULT,      /* 10 */
        KOLAB_FOLDER_TYPE_TASK,                 /* 11 */
        KOLAB_FOLDER_TYPE_TASK_DEFAULT,         /* 12 */
        KOLAB_FOLDER_TYPE_NOTE,                 /* 13 */
        KOLAB_FOLDER_TYPE_NOTE_DEFAULT,         /* 14 */
        /* Book-IMAPX (EBook-Backend) */
        KOLAB_FOLDER_TYPE_CONTACT,              /* 15 */
        KOLAB_FOLDER_TYPE_CONTACT_DEFAULT,      /* 16 */
        KOLAB_FOLDER_LAST_TYPE
} KolabFolderTypeID;

(aus evolution-kolab/src/libekolabutil/kolab-util-folder.h)

Attic/Evolution/Kolab/TroubleShooting/DeGerman (last edited 2018-08-18 15:14:09 by AndreKlapper)