Цю проблему безпосередньо пов'язано із вадою 283682 в Akonadi, яка спричиняє проблеми у KMail з жовтня 2011 року. Існує проблема синхронізації та координації в асинхронній обробці фільтрів повідомлень. Іноді правило фільтрування, за яким пересувають повідомлення до інших тек, «підвисає» і створює декілька записів у базі даних для повідомлення, яке підлягає пересуванню. Коли ви намагаєтеся відкрити другу копію такого повідомлення, з'являється повідомлення про те, що «Неможливо отримати запис з модуля обробки ...[LRCONFLICT]». Такі фантомні повідомлення не можна вилучити або пересунути до смітника за допомогою вбудованих засобів KMail. Але ви можете їх позбутися. Нижче наведено спосіб зробити це.
Спочатку завершіть роботу KMail. Можливо, потреби у цьому немає, але краще запобігти небажаним наслідкам.
За допомогою
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.
У цьому випадку маємо дев'ять дубльованих повідомлень (без RID).
Вам слід визначити спосіб безпосереднього з'єднання із сервером mysql. Для цього варто скористатися командами
psіgrep.~ $ 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
Викличте програму-сервер mysql за допомогою даних щодо сокета, здобутих на кроці 3, і віддайте три команди mysql, які проілюстровано нижче.
~ $ 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
Цими трьома командами mysql є «use akonadi;», «delete from pimitemtable where remoteid is NULL;» і «\q». Після команди «mysql --socket= ...» ви почнете діалог із сервером mysql (або «MariaDB»), який покаже запит щодо команди — >. Тут для точності наведено увесь діалог. Рядки, введені користувачем, на наведеній вище ілюстрації позначено <==.
Після перезапуску KMail надокучливі повідомлення-дублікати мають зникнути. Вони були лише фантомами, причиною появи яких були NULL-вказівники у таблицях бази даних mysql.