«No s'ha pogut obtenir l'element des del dorsal «...» [LRCONFLICT]»

Aquest problema està directament relacionat amb l'error núm. 283682 de l'Akonadi, el qual ha estat una espina al costat del KMail des d'octubre de 2011. Hi ha un problema de temps/coordinació amb el processament asíncron dels filtres de missatges. De tant en tant, una regla de filtre mou els missatges a una carpeta diferent «hiccups», i produeix més d'una entrada a la base de dades per a un missatge que s'ha mogut. Quan s'intenta obrir la segona còpia del missatge, s'obté el missatge d'error «No s'ha pogut obtenir l'element des del dorsal «...» [LRCONFLICT]». Aquests missatges fantasma no es poden suprimir o moure a la paperera amb les funcions incorporades del KMail. Però podeu desfer-vos-en. Així és com ho fareu.

  1. Primer, sortiu del programa KMail. Això pot ser innecessari, però millor anar segur que penedir-se.

  2. Podeu aprendre quants missatges corruptes hi ha presents mitjançant akonadictl.

    ~ $ akonadictl fsck 2
    >&1 | grep ^Found
    Found 6 external files.
    Found 6 external parts.
    Found no unreferenced external files.
    Found 0 parts to be moved to external files
    Found 0 parts to be moved to database
    Found 6 collections without RID.
    Found 9 items without RID.
    Found 0 dirty items.

    En aquest cas, hi ha nou missatges duplicats (sense RID).

     

  3. Heu de saber com connectar-vos directament amb el servidor MySQL. Utilitzeu les ordres ps i grep per a fer això.

    ~ $ ps ux | grep mysql
    david     8788  0.2  0.9 3736292 153936 ?      Sl   06:45   0:16 /usr/sbin/mysqld
    --defaults-file=/home/david/.local/share/akonadi/mysql.conf
    --datadir=/home/david/.local/share/akonadi/db_data/
    --socket=/run/user/1000/akonadi/mysql.socket
    --pid-file=/run/user/1000/akonadi/mysql.pid
    david    24275  0.0  0.0   8056  2144 pts/1    S+   08:24   0:00 grep --colour=auto mysql

     

  4. Invoqueu el programa servidor de MySQL utilitzant la informació del sòcol des del pas 3 i emeteu tres ordres de MySQL, com s'il·lustra a continuació.

    ~ $ mysql --socket=/run/user/1000/akonadi/mysql.socket                 <==
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 114
    Server version: 10.5.10-MariaDB Source distribution
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]> use akonadi;                                         <==
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    MariaDB [akonadi]> delete from pimitemtable where remoteid is NULL;    <==
    Query OK, 9 rows affected (0.003 sec)
    
    MariaDB [akonadi]> \q                                                  <==
    Bye

    Les tres ordres de MySQL són «use akonadi;», «delete from pimitemtable where remoteid is NULL;» i «\q». Després de dir «mysql --socket= ...» estareu en un diàleg amb el servidor MySQL (també conegut com a «MariaDB»), el qual proporciona un missatge. Per a més claredat, aquí es presenta tot el diàleg. En la il·lustració anterior, les línies d'entrada de l'usuari estan marcades amb «<==».

Quan reinicieu el KMail, aquests molestos missatges duplicats hauran marxat. Senzillament eren fantasmes causats pels punters nuls en les taules de la base de dades MySQL.