Цю проблему безпосередньо пов'язано із вадою 436550 в Akonadi, про яку було повідомлень у квітні 2021 року. Вада є результатом виявлення записів «в обробці» за допомогою akonadictl fsck.
~ $ akonadictl fsck 2 >&1 | grep ^Found Found 5 external files. Found 5 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 0 items without RID. Found 750 dirty items.
Прапорець «в обробці» для запису у pimitemtable (одна з таблиць у базі даних Akonadi) використовується для керування певними аспектами асинхронної обробки. Для нього встановлюється значення true, якщо у черзі дій є дії із відповідним повідомленням електронної пошти. Переважно, прапорець «в обробці» знімається за одну або дві секунди, коли виконання дії з черги завершується.
Нарешті, з не зовсім очевидних причин прапорець «в обробці» може бути встановлено для десятків і навіть сотень повідомлень одразу, як це проілюстровано вище. Коли таке трапляється, автоматичних механізм чищення прапорців «зависає» і не може відновити стан повідомлень автоматично. Основною причиною для появи повідомлення «в обробці» у цьому випадку є те, що програма неправильно встановлює значення для поля «remoteid», що робить отримання повідомлення «в обробці» у KMail неможливим. Саме повідомлення лишається зберігатися на диску, але KMail не може його знайти.
Можливо, у цієї проблеми є кращий спосіб вирішення. Якщо вам вдалося вирішити її оптимальніше, будь ласка, повідомте про це авторам документації, щоб удосконалити її. Наведена нижче процедура, принаймні, призведе до виправлення помилок у базі даних. Втім, вона потребує доволі багато ручної роботи.
Вийдіть із KMail і зупиніть роботу сервера Akonadi за допомогою команди у терміналі:
akonadictl stop.Створіть резервну копію усіх ваших повідомлень електронної пошти. З цією метою ви можете скористатися Засобом експортування даних PIM. Крім того, ви можете скористатися Ark для створення архіву або Dolphin для створення копії
~/.local/share/local-mail/десь в іншому місці на жорсткому диску. Якщо вам не чужий дух пригод, можете просто перейменувати ваші локальні теки на щось подібне доlocal-mail-save, але безпечніше мати резервну копію ваших повідомлень, перш ніж ви перейдете до будь-яких дій із виправлення ситуації.Вам також слід створити резервну копію будь-яких створених фільтрів і переконатися, що ви знаєте, які відновити усі нетипові теки надісланої пошти, теку чернеток та теку шаблонів, пов'язані із профілями KMail. На наступному кроці усі ваші нетипові теки пошти буде вилучено, і вам доведеться виправляти деякі речі після того, як Akonadi перебудує свої таблиці бази даних.
Далі, вилучіть усі каталоги у каталозі
local-mailабо перейменуйте цей каталог на щось подібне доlocal-mail-save. Запустіть KMail. У результаті Akonadi витре усі записи таблиць бази даних із повідомленнями електронної пошти. Ви ненадовго побачите стані назви тек, але вони зникнуть, щойно Akonadi завершить вилучення усіх записів «в обробці» (і усіх інших записів).Завершіть роботу KMail і зупиніть сервер Akonadi, як це описано на кроці 1, потім відновіть резервну копію ваших повідомлень (її було створено на кроці 2) у каталозі
~/.local/share/local-mail/.Запустіть KMail знову і примусьте Akonadi повторно синхронізувати базу даних. Найпростішим способом зробити це, є пункт меню → (Ctrl+L). Akonadi автоматично повторно синхронізує усі теки під час отримання пошти. Процедура триватиме декілька хвилин, залежно від кількості повідомлень, які зберігаються у ваших теках KMail. Після її завершення усі записи «в обробці» зникнуть.
Нарешті, вам потрібно буде відновити ваші правила фільтрування пошти, резервну копію яких ви створили на кроці 3, і перевірити, чи усі нетипові записи тек (Тека надісланої пошти тощо) для ваших профілів встановлено так, як ви цього хотіли. Вам також доведеться скинути усі нетипові властивості тек, які було встановлено. Крім того, ви можете отримати декілька сповіщень про «Непрочитане повідомлення», які теж слід прибрати. Втім, таблиці вашої бази даних Akonadi будуть знову чистими і правильними!