Archive:Http://userbase.kde.org/Akonadi 4.4/Troubleshooting/da
Template:I18n/Language Navigation Bar
Introduktion
Denne side handler hovedsagligt om at løse problemer med Akonadi, da der uundgåligt vil forekomme problemer i de tidlige faser af overgangen til dette nye system. Mange vil støde på Akonadi for første gang i KDE SC 4.4, og mange vil blive forvirrede over det. Se dette afsnit i Ordforklaringen for en kort beskrivelse af Akonadis formål. Her finder du også nyttige links til videre læsning. Når de uundgåelige børnesygdomme er overstået, så vil Akonadi være et kraftcenter, som kan bruges af mange applikationer.
Forstå strukturen
Du kan selvfølgelig blot bruge Kontact til at håndtere alle dine adressebøger, men hvis du for eksempel har er backupsystem i brug, så vil du have brug for at vide, hvor dine data er og hvordan de håndteres. Siden Akonadi og adressebøger hjælper med det.
Tips til fejlrapportering
- Når du rapporterer om problemer med Akonadi-serveren, så bør du altid inkludere en dækkende selvtest-rapport. Denne rapport kan dannes fra selvtest-dialogen, som altid viser sig når Akonadi-serveren ikke kan startes med succes. Du kan finde selvtest-dialogen i det kcmmodul, som er tilgængeligt via 'kcmshell4 kcm_akonadi'.
- Det kan give yderligere brugbar information, hvis du starter Akonadi-serveren manuelt fra kommandolinjen. Dette kan gøres ved at køre akonadictl start i en konsol. På tilsvarende vis kan serveren stoppes ved at køre akonadictl stop, og akonadictl status giver mere brugbar information.
Almindelige problemer
Kontact starter ikke - og den fortæller mig intet
Hvis Kontact ikke starter og du ikke ser nogen fejlmeddelse, så kontroller, om Akonadi kører. Akonadi skulle starte, når den behøves. Hvis det ikke sker automatisk, så skal du starte den før Kontact kan starte, hvis du har overført nogle ressourcer (mest sandsynligt KAddressBook). Brug AkonadiTray-ikonet (som du får frem ved at skrive 'akonadi' i KRunner) til at starte den med eller skriv kommandoerne direkte i en konsol for at starte den.
Kontact starter ikke - version II
Der har været tilfælde, hvor Kontact er blevet ramt efter en updatering. Hvis det sker, så prøv at starte KMail. KOrganizer eller en af de andre applikationer ved hjælp af KRunner (eller Konsole). Der er en god chance for, at de kan fungere mens du finder ud af, hvad der gik galt. Dette påvirker især version 4.4.0.
Folder not found: "/Local"
Nogle har rapporteret denne fejlmeddelse, når Kontact ikke ville starte. Der synes at være en fejl i overførslen, som instruerer KMail til at søge efter lokal mail i ~/.local/share/Local, men denne mappe er ikke blevet sat op. Løsningen på dette er ikke at forsøge korrigere det; luk i stedet KMail/Kontact hvis de kører, åbn Akonaki-konsollen (brug KRunner, Alt-F2 eller 'akonadikonsole' i en konsol), og fjern ressourcen, som den siger er til lokal mail. Du skulle nu opleve, at du kan starte Kontact og KMail, og at en ny ressource vil blive skabt, som peget på ~/.local/share/local-mail
Ja. Hvis din adressebog er korrekt overført, så er der blevet dannet en ny ressource kaldet ~/.local/share/contacts/
Hvad er /usr/bin/akonadi_maildir_resource og /usr/bin/akonadi_maildispatcher_agent?
akonadi_maildir_resource dannes automatisk af akonadi_maildispatcher_agent, som altid startes sammen med Akonadi-serveren, da den stiller grundlæggende funktioner til rådighed (som fx at sende mail), som bruges af alle de mail-applikationer, som er baseret på Akonadi. Det er derfor i orden, at disse to kører; som bruger kan du simpelthen ignorere dem. Denne automatisk dannede akonadi_maildir_resource vil altid pege på ~/.local/share/local-mail/ som er din 'Local folders'-konto, hvor dine lokale mapper og emails vil blive gemt.
Indtil videre (KDE SC 4.4) bliver mail endnu ikke overført.
Nepomuk Indexing Agents er slået fra
Kontact virker nu, men du ser følgende dialog:
Den mest almindelige årsag til denne meddelelse er, at Nepomuk er slået fra i Systemindstillinger. Prøv at aktivere den i Systemindstillinger > Avanceret > Skrivebordssøgning > Basale indstillinger > Aktivér Nepomuk semantisk skrivebordsmiljø og så klikke Anvend.
Hvis det ikke hjælper (eller hvis den allerede var aktiveret, da du fik fejlmeddelelsen) og hvis du tidligere har brugt en betaversion af KDE SC 4.4, så kan du være påvirket af en ændring i databasens layout (på grund af en opgradering af databaseserveren Virtuoso fra version 5 til version 6; den endelige udgave af KDE SC 4.4 forventes at udgives med Virtuoso version 6). Følgende kommando skulle få det til at virke igen.
qdbus org.kde.NepomukServer /nepomukserver org.kde.NepomukServer.quit |
rm -r ~/.kde/share/apps/nepomuk |
rm -r ~/.kde4/share/apps/nepomuk |
nepomukserver |
Bemærk, at ovenstående kommandoer ikke vil aktivere Nepomuk permanent, hvis den ikke allerede er aktiveret; du skal bruge Systemindstillinger til permanent aktivering.
Det er nødvendigt, at Nepomuk kører for at Akonadi og Kontact kan fungere. Dog er filindexeren Strigi ikke nødvendig for Kontact, så den kan du slå fra. Strigi bruges kun til skrivebordssøgning. Du skal blot sikre dig, at Nepomuk selv kører korrekt for at kunne bruge Kontact.
I Kontact bruges Nepomuk til mange ting fra visning af forestående fødselsdage til visning af fotos i meddelelsesfremviseren. Hvis Nepomuk ikke kører, så er der flere ting i Kontact, som vil ophøre med at fungere. Dialogen vises for at advare dig om den reducerede funktionalitet. Aktivering af Nepomuk som vist ovenfor løser problemet.
Du kan kontrollere, om Nepomuk kører korrekt ved at skrive akonadictl status i en konsol.
Jeg ønsker at bruge min nuværende adressebog og Organizer - kan jeg det?
Ja. Når du bruger Akonadi-konsollen til at tilføje ressourcer, lader den dig vælge Standard adressebog - det burde virke, at du lader den pege på std.vcf. Overførsel sletter ikke din gamle adressebog. Du kan fortsætte med at bruge den, men så mister du mange af fordelene, som Akonadi kan give dig. Det er også muligt både at bruge en Akonadi-adressebog og din oprindelige adressebog samtidigt, hvis du føler dig mere sikke på den måde.
Jeg kan ikke se nogle detaljer i min adressebog
I øjeblikket kender vi ikke årsagen til dette problem, men det er let løst. Luk Kontact og start KAddressBook som en selvstændig applikation. Efter at lukke den igen vil du være i stand til at bruge den i Kontact. Det virker som om, at noget ikke bliver udløst når Kontact bliver startet, og jeg regner med, at dette bliver identificeret og rettet snart. Dette synes hovedsaligt at påvirke version 4.4.0.
Mine kontakter vises ikke, når jeg bruger knappen Vælg i KMail
Kontroller Systemindstillinger > Avanceret > KDE-ressourcer for at sikre dig, at din Akonadi-kontrollerede adressebog (eller -bøger) er med i listen; hvis ikke, så må du tilføje dem. Det er også en god ide at sikre dig, at din primære Akonadi-adressebog, som i reglen kaldes Personal Contacts, er sat til at være standard. Flere detaljer om dette kan findes her.
Hvordan får jeg min Groupware-adressebog tilbage?
Der er to løsninger: du kan bruge det gamle system eller det nye.
Det gamle system: Tilføj en "KDE Address Book (traditional)" i akonadiconsole; på den måde kan du sætte gamle kresource'r op for Akonadi. I konfigurationen af "KDE Address Book (traditional)" lader du den pege på en "IMAP over KMail"-KResource, og i KMAil skal groupware-tilvalget aktiveres. Dette skulle virke for Kolab, eGroupware og lignende adressebøger - du bør kontrollere tilvalgene for at sikre dig, at den rigtige type er valgt.
Det nye system (kun testet med Kolab): I Akonadis konfigurationsmodul (kør kcmshell4 kcm_akonadi' for at få det frem) skal du tilføje en ressource for en "IMAP E-Mail Server" og indsætte din mailservers navn og dit brugernavn og adgangskode og derefter klikke på Autodetektér. Tilføj så en Kolab-ressource. Vent så på at IMAP-ressourcen synkroniserer - det kan tage ret lang tid. Status vises i Akonadis konfigurationsmodul. Hvis der ikke sker noget, så prøv at genstarte akonadiserver. Efter nogen tid skulle Kolab-adressebogen blive vist i KAddressBook.
Du oplaver lange ventetider, når du sender mail
Dette får også KMAil til at fryse, indtil mailen faktisk er sendt.
Der er fundet en fejl i den måde Nepomuk checker adresser, og den kan forårsage store forsinkelser. Dette er blevet rettet i KDE SC 4.4.1. Hvis du ikke kan får 4.4.1 endnu, så kan du omgå problemet således:
Luk Kontact (eller KMail og KAddressbook hvis du kører dem for sig selv). Slå Strigi fra i Systemindstillinger. Stop Nepomuk, slet databasen og genstart nepomukserver. Du skal bruge følgende kommandoer (som almindelig bruger):
qdbus org.kde.NepomukServer /nepomukserver org.kde.NepomukServer.quit |
rm -r ~/.kde/share/apps/nepomuk |
rm -r ~/.kde4/share/apps/nepomuk |
nepomukserver |
Dette vil selvfølgelig slette hele databasen med alt, hvad du har føjet til den. Det skulle være muligt kun at slette dele af databasen. Hvis det er vigtigt for dig, så kan du finde instruktioner på dette websted.
Nogle tekniske forhold
Nepomuk
Fra og med KDE SC 4.4 er det nødvendigt, at Nepomuk kører for at Akonadi kan fungere korrekt. Akonadi vil kontrollere, om dette er tilfældet og vise en fejlmeddelse ved opstarten hvis ikke.
Nepomuk virker kun med Virtuoso-bagenden. Du kan finde ud af, om Nepomuk kører med den rigtige bagende ved hjælp af Akonadis selvtest-dialog som beskrevet ovenfor.
Although Nepomuk is required to be running, you can still disable Strigi file indexing, which is usually the most resource-intensive part of the Nepomuk framework.
Apparmor
Some distributions using Apparmor have it set up in a way that prevents Akonadi from running its internal database server. This can result in a variety of fuzzy error messages, including but not limited to the following:
- unknown error 255 when running akonadictl
- "DB error: 'Could not open required defaults file: /home/$username/.local/share/akonadi/mysql.conf"
You can solve this by running aa-complain mysqld with root privileges then reload apparmor. On Kubuntu this is:
sudo aa-complain mysqld sudo /etc/init.d/apparmor reload
Note that you might be using Apparmor even if it does not show up in the process list.
Also note that some distributions ship an additional mysqld binary called mysqld-akonadi which has AppArmor set up correctly. If that's the case on your system and you see this problem nevertheless, there are two possible reasons:
- Akonadi still uses mysqld instead of mysqld-akonadi. You can change that in Systemsettings -> Advanced -> Akonadi -> Server configuration.
- AppArmor is not setup correctly for mysqld-akonadi either. Try running the aa-complain command noted above with mysqld-akonadi instead of mysqld.
---
You will also experience this problem if you are running an encrypted home directory using encryptfs combined with AppArmor as the Akonadi apparmor profile currently does not account for an ecrypted home (common with Ubuntu Jaunty users). Error messages with include:
- dmesg produces:
ecryptfs_do_create: Failure to create dentry in lower fs; rc = [-13] ecryptfs_create: Failed to create file inlower filesystem
- Akonadi will list the following errors:
Akonadi server process not registered at D-Bus
The fix is to edit the following file "/etc/apparmor.d/usr.sbin.mysqld-akonadi". Below the line:
@{HOME}/.local/share/akonadi/** rwk,
Add a new line:
@{HOME}/.Private/** rwk,
Restart apparmor and restart akonadi.
Missing Prerequisite
To use Akonadi you need to have the following packages installed (names might differ depending on your distribution):
- The MySQL server (called mysql on openSUSE)
- The Qt4 MySQL plugin (called libqt4-sql-mysql on openSUSE)
If you compile Qt4 yourself, make sure to tell the configure script to build in MySQL support by passing it the '-plugin-sql-mysql' option. If configure cannot locate the necessary MySQL client code (i.e, says "MySQL support cannot be enabled due to functionality tests") then ensure that the corresponding package is installed (typically called [lib]mysql[client]-dev[el]). Also, depending on the install location of the MySQL headers, additional parameters to configure might be needed (eg. -I /usr/include/mysql on OpenSuse).
If you get the Qt4 direct from Nokia, such as a download of
qt-sdk-linux-x86_64-opensource-2009.05.bin
you will ( by the command "akonadictl start") get an error at Test 1:
Database driver not found. Details: The QtSQL driver 'QMYSQL' is required by your current Akonadi server configuration. The following drivers are installed: QSQLITE. Make sure the required driver is installed.
The driver you need is libqsqlmysql.so
Unfortunately this driver is not part of the distribution (until january 2010). You need to compile the source. Download it
qt-everywhere-opensource-src-4.6.0.tar.bz
configure and make as above. But the make install doesn't copy the driver. So you have to copy it by yourself:
cp <qt-src-dir>/qt-everywhere-opensource-src-4.6.0/plugins/sqldrivers/libqsqlmysql.so /usr/local/bin/sqldrivers/ |
But the Revision 4.6.1, such as qt-sdk-linux-x86_64-opensource-2010.xx.bin has the driver you needed.
Environment Setup
The Akonadi server searches for Akonadi agents and resources in the paths defined in the XDG_DATA_DIRS environment variable. If Akonadi complains about not finding agents or resources, check if this variable is set correctly. Also keep in mind that even if set in a current console session, it might not have been set when starting the server. Starting the server manually in the current console session excludes this cause.
mysqld: unknown variable 'innodb_file_per_table=1'
If the MySQL server log contains the following error:
[ERROR] /usr/libexec/mysqld: unknown variable 'innodb_file_per_table=1'
[ERROR] Aborting
then your MySQL server was built without the InnoDB support which is required by Akonadi.
Table 'mysql. servers' doesn't exist
If MySQL server log contains the following error:
[ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
[ERROR] Cannot open mysql.db
[ERROR] Cannot open mysql.user
[ERROR] Cannot open mysql.event
then, most probably, you don't have your MySQL configuration file in place. Copy it from /usr/share/config/akonadi/mysql-global.conf into ~/.config/akonadi/mysql-local.conf. (For debian and openSuSE users the file ist located in /etc/akonadi/mysql-global.conf). Then open it and uncomment the line sql_mode=strict_trans_tables. If, after that, you get the following errors:
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE
failed.
[ERROR] Unknown/unsupported table type: innodb
[ERROR] Aborting
then in the same file find the line that starts just like the one above (which you have uncommented), but has additional parameters, separated by commas (something like sql_mode=strict_trans_tables,strict_all_tables, ...etc). Comment the shorter sql_mode=... line and uncomment the longer one.
On openSUSE 11.2 running the command
mysql_install_db --datadir=$HOME/.local/share/akonadi/db_data/
will fix this problem.
Kubuntu 10.4 Upgrade
This is a summary of other entries here for those upgrading from Kubuntu 9.10 to 10.4 who may have been using a personal package archive (PPA) for KDE 4.3 for bug fixes.
Install missing prerequisites. Remove previous akonadi cache. Start the akonadi service. Install the database. Upgrade the database. Stop and restart the akonadi service.
sudo apt-get install virtuoso-server mysql-server-5.1 |
rm -r $HOME/.local/share/akonadi |
akonadictl start |
mysql_install_db --datadir=$HOME/.local/share/akonadi/db_data/ |
mysql_upgrade --socket=$HOME/.local/share/akonadi/db_misc/mysql.socket |
akonadictl stop |
akonadictl start |
The mysql_install_db command above will report something like what follows, which you can safely ignore:
Installing MySQL system tables...
100501 18:04:30 [Warning] Can't create test file /home/[userid]/.local/share/akonadi/db_data/[hostname].lower-test
Reference: forum.kde.org Akonadi 1.2.1 - some issues
KAddressBook upgrade
In addition to the Kubuntu 10.4 remedy above, problems trying to add a Vcard directory may require
rm -rf $HOME/.config/akonadi |
while Akonadi is not running.
Can't initialize character set latin1
If you get the following error when starting Akonadi:
Character set 'latin1' is not a compiled character set and is not specified in
the '/usr/share/mysql/charsets/Index.xml' file
Nepomuk QueryServer interface not available!
Connecting to deprecated signal
QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
DataStore::unhideAllPimItems()
Character set 'latin1' is not a compiled character set and is not specified in
the '/usr/share/mysql/charsets/Index.xml' file
Database error: Cannot open database.
Last driver error: "QMYSQL: Unable to connect"
Last database error: "Can't initialize character set latin1 (path:
/usr/share/mysql/charsets/)"
Database error: Cannot open database.
Last driver error: "QMYSQL: Unable to connect"
Last database error: "Can't initialize character set latin1 (path:
/usr/share/mysql/charsets/)"
then you're probably using a MySQL server which has a version > 5.1.42. There is a known regression in MySQL 5.1.43 and 5.1.44 which prevents MySQL from starting.
See the bug report for more details.
Restarting after a previous error
If you had problems starting Akonadi and fixed those (such as a missing package or the Apparmor problem) make sure that the Akonadi server is completely shut down before trying to start it again, by calling akonadictl stop on the command line. You can confirm that it was indeed shut down completely by running akonadictl status.
Under some circumstances the Akonadi server can be stuck in a partially running state after a failure which will prevent the next attempt to start it to fail as well. Please file a bug report if you run into this problem including the self-test report of the initial problem.
The so-called "Gentoo-Assert"
That's an especially nasty problem that so far only affects users of source-based distributions, most prominently Gentoo. It is named after MySQL assertions like the following example and is most likely caused by a MySQL protocol mismatch between the MySQL server and the client library or the Qt MySQL driver.
akonadiserver: libmysql.c:4301: setup_one_fetch_function: Assertion |
`param->buffer_length != 0' failed. |
It is extremely hard to diagnose as the assertion mentioned above are only triggered sometimes. Instead you'll get a wide range of weird symptoms:
- ASAP protocol logs show successful creation of objects which are supposedly no longer available when the next commands accesses them again.
- SQL protocol logs show INSERT or UPDATE commands with values that mismatch the corresponding column types and nevertheless succeed.
- SQL protocol logs showing large apparently random record ids which are nevertheless considered valid.
References:
- http://forum.kde.org/viewtopic.php?f=20&t=61738
- http://bugs.gentoo.org/show_bug.cgi?id=267513
- https://bugs.kde.org/202623 (contains a possible solution)
- http://bbs.archlinux.org/viewtopic.php?id=78358
Possible solution: Rebuild the Qt MySQL driver after upgrading MySQL (which most likely caused this problem in the first place).