"Não foi possível obter o item do backend... [LRCONFLICT]"

Este problema está diretamente relacionado ao bug #283682 do Akonadi, que tem sido um problema para o KMail desde outubro de 2011. Há um problema de sincronização/coordenação com o processamento assíncrono de filtros de mensagens. De vez em quando, uma regra de filtro que move mensagens para uma pasta diferente "apresenta um problema" e gera mais de uma entrada no banco de dados para uma mensagem que foi movida. Quando você tenta abrir a segunda cópia dessa mensagem, a mensagem de erro "Não foi possível buscar o item do backend ...[LRCONFLICT]" aparece. Essas mensagens fantasmas não podem ser excluídas ou movidas para a lixeira usando as funções integradas do KMail. Mas você pode se livrar delas. Veja como.

  1. Primeiro, saia do programa KMail. Isso pode não ser necessário, mas é melhor prevenir do que remediar.

  2. Você pode descobrir quantas mensagens corrompidas estão presentes usandoakonadictl.

    ~ $ 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.

    Neste caso, existem nove mensagens duplicadas (sem RID).

     

  3. Você precisa saber como se conectar diretamente ao servidor MySQL. Use os comandos ps e grep para fazer isso.

    ~ $ 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. Invoque o programa do servidor mysql usando as informações do socket da etapa 3 e emita três comandos mysql, conforme ilustrado abaixo.

    ~ $ 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

    Os três comandos mysql são "use akonadi;", "delete from pimitemtable where remoteid is NULL;" e "\q". Depois de digitar "mysql --socket= ...", você entrará em um diálogo com o servidor mysql (também conhecido como "MariaDB"), que fornecerá um prompt >. O diálogo completo é apresentado aqui, para clareza. As linhas de entrada do usuário são marcadas com <== na ilustração anterior.

Ao reiniciar o KMail, aquelas mensagens duplicadas irritantes desaparecerão. Elas eram apenas fantasmas causados ​​pelos ponteiros NULL nas tabelas do banco de dados MySQL.