Сегодня внезапно перестали открываться Kontact и Kmail, ругаясь на "Duplicate '4-trash' " В логах при этом -- [2024-10-10T06:10:32.688Z] akonadiserver org.kde.pim.akonadiserver DATABASE ERROR: [2024-10-10T06:10:32.688Z] akonadiserver org.kde.pim.akonadiserver DATABASE ERROR: [2024-10-10T06:10:32.688Z] akonadiserver org.kde.pim.akonadiserver Error code: "1062" [2024-10-10T06:10:32.688Z] akonadiserver org.kde.pim.akonadiserver Error code: "1062" [2024-10-10T06:10:32.688Z] akonadiserver org.kde.pim.akonadiserver DB error: "Duplicate entry '4-trash' for key 'collectiontable.CollectionTable_parentAndNameIndex'" [2024-10-10T06:10:32.688Z] akonadiserver org.kde.pim.akonadiserver DB error: "Duplicate entry '4-trash' for key 'collectiontable.CollectionTable_parentAndNameIndex'" [2024-10-10T06:10:32.688Z] akonadiserver org.kde.pim.akonadiserver Error text: "Duplicate entry '4-trash' for key 'collectiontable.CollectionTable_parentAndNameIndex' QMYSQL3: Невозможно выполнить выражение" [2024-10-10T06:10:32.688Z] akonadiserver org.kde.pim.akonadiserver Error text: "Duplicate entry '4-trash' for key 'collectiontable.CollectionTable_parentAndNameIndex' QMYSQL3: Невозможно выполнить выражение" [2024-10-10T06:10:32.689Z] akonadiserver org.kde.pim.akonadiserver Values: QMap((":0", QVariant(QString, ""))(":1", QVariant(QString, ""))(":10", QVariant(int, -1))(":11", QVariant(int, -1))(":12", QVariant(bool, false))(":13", QVariant(QString, ""))(":14", QVariant(bool, false))(":2", QVariant(QString, "trash"))(":3", QVariant(qlonglong, 4))(":4", QVariant(qlonglong, 4))(":5", QVariant(bool, true))(":6", QVariant(int, 2))(":7", QVariant(int, 2))(":8", QVariant(int, 2))(":9", QVariant(bool, true))) [2024-10-10T06:10:32.689Z] akonadiserver org.kde.pim.akonadiserver Values: QMap((":0", QVariant(QString, ""))(":1", QVariant(QString, ""))(":10", QVariant(int, -1))(":11", QVariant(int, -1))(":12", QVariant(bool, false))(":13", QVariant(QString, ""))(":14", QVariant(bool, false))(":2", QVariant(QString, "trash"))(":3", QVariant(qlonglong, 4))(":4", QVariant(qlonglong, 4))(":5", QVariant(bool, true))(":6", QVariant(int, 2))(":7", QVariant(int, 2))(":8", QVariant(int, 2))(":9", QVariant(bool, true))) [2024-10-10T06:10:32.689Z] akonadiserver org.kde.pim.akonadiserver Query: "INSERT INTO CollectionTable (remoteId, remoteRevision, name, parentId, resourceId, enabled, syncPref, displayPref, indexPref, cachePolicyInherit, cachePolicyCheckInterval, cachePolicyCacheTimeout, cachePolicySyncOnDemand, cachePolicyLocalParts, isVirtual) VALUES (:0, :1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14)" [2024-10-10T06:10:32.689Z] akonadiserver org.kde.pim.akonadiserver Query: "INSERT INTO CollectionTable (remoteId, remoteRevision, name, parentId, resourceId, enabled, syncPref, displayPref, indexPref, cachePolicyInherit, cachePolicyCheckInterval, cachePolicyCacheTimeout, cachePolicySyncOnDemand, cachePolicyLocalParts, isVirtual) VALUES (:0, :1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14)" [2024-10-10T06:10:32.689Z] akonadiserver org.kde.pim.akonadiserver Error during insertion into table "CollectionTable" "Duplicate entry '4-trash' for key 'collectiontable.CollectionTable_parentAndNameIndex' QMYSQL3: Невозможно выполнить выражение" [2024-10-10T06:10:32.689Z] akonadiserver org.kde.pim.akonadiserver Error during insertion into table "CollectionTable" "Duplicate entry '4-trash' for key 'collectiontable.CollectionTable_parentAndNameIndex' QMYSQL3: Невозможно выполнить выражение" [2024-10-10T06:10:32.689Z] akonadiserver org.kde.pim.akonadiserver Failed to append Collection "trash" in resource "akonadi_maildir_resource_0" [2024-10-10T06:10:32.689Z] akonadiserver org.kde.pim.akonadiserver Failed to append Collection "trash" in resource "akonadi_maildir_resource_0" [2024-10-10T06:10:32.690Z] akonadiserver org.kde.pim.akonadiserver Error while handling command CreateCollection on connection kmail2-1170205112 (0x557363a1b770) [2024-10-10T06:10:32.690Z] akonadiserver org.kde.pim.akonadiserver Error while handling command CreateCollection on connection kmail2-1170205112 (0x557363a1b770) -- Поиск выдал наиболее вероятную причину - дублирование локальной папки с удаленной, например создание локальной с таким же именем, как удаленная: не мой случай - последние дни ящики не перенастраивались, работают уже длительное время и вчера-вечером-ночью ничего не менялось. (Хотя вчера вечером пробегался по настройкам: открывал и закрывал, ничего не меняя, правда выходил по "ок", а не "отмена".) Предполагаю произошел какой-то десинк с базой в процессе работы. Решение проблемы в моем случае: 1. Установить akonadiconsole, если не установлена sudo apt-get install kde5-akonadiconsole 2. Запустить консоль akonadi, включить журналирование, запустить kmail или kontakt до ошибки, чтоб проверить и убедиться в названии вызывающего ошибку ресурса. 3. Через вкладку "Просмотр" найти проблемные ящик с папкой (в моем случае это ящик imap_resource_4 и папка trash в нем в терминах базы akonadi) 4. Через вкладку "Агенты" перенастроить путь для проблемной папки (в моем случае перенастройка указателя корзины ящика с сетевой/imap на локальную) или отписаться (предполагаемый вариант в случае такой ошибки с другой папкой) и перезапустить. 5. Запустить kontakt/kmail и убедиться, что проблема ушла, после чего уже через интерфейс настройки kmail вернуть настройки для папки (в моем случае вернуть указатель корзины на соответствующую imap-папку ящика) или подписаться (для других). 6. Перезагрузиться (легкий вариант - перезапустить akonadi через "akonadictl restart") и убедиться, что клиент kontakt/kmail работает без ошибок (снова при запуске не останавливается с руганью на дубликат) Альтернативное решение: удаление проблемного ящика через консоль akonadi и пересоздание через kmail/kontakt (благо, поскольку это ящик imap - все данные хранятся на почтовом сервере). Полагаю, можно было еще поправить таблицу непосредственно в базе, но не рискнул. -- ALT Workstation K 10.4 (Sorbaronia Mitschurinii) kde5-kmail-23.08.5-alt1.x86_64 kde5-akonadi-23.08.5-alt1.x86_64
Добавлю: на https://bugs.kde.org/show_bug.cgi?id=375244 еще рекомендация в оффлайне переименовать проблемную папку
ALT Workstation 10.3 Попробовал создание локальной и удалённой папки, а затем проверку синхронизации её с почтовым сервисом. Синхронизация успешная, ошибок нет. В качества почтового сервиса использовал Yandex.Mail. Нужны более точные шаги и условия для воспроизведения проблемы. Пожалуйста, дополнительно предоставьте следующую информацию: 1. Операционная система, версия, на которой воспроизвелась ошибка. 2. Выводы следующих команд: $ uname -a $ cat /etc/os-release $ apt-repo 3. Обновлена ли система до текущего состояния репозитория?
=== sh-4.4$ uname -a Linux ws211.mid.local 6.1.112-un-def-alt1 #1 SMP PREEMPT_DYNAMIC Tue Oct 15 10:32:10 UTC 2024 x86_64 GNU/Linux sh-4.4$ cat /etc/os-release NAME="ALT" VERSION="10.4" ID=altlinux LOGO="basealt" VERSION_ID=10.4 PRETTY_NAME="ALT Workstation K 10.4 (Sorbaronia Mitschurinii)" ANSI_COLOR="1;33" CPE_NAME="cpe:/o:alt:kworkstation:10" BUILD_ID="ALT 10.3" ALT_BRANCH_ID="p10" HOME_URL="https://www.basealt.ru/" BUG_REPORT_URL="https://bugs.altlinux.org/" DOCUMENTATION_URL="https://docs.altlinux.org/" SUPPORT_URL="https://support.basealt.ru/" sh-4.4$ apt-repo rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64 classic gostcrypto rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64-i586 classic rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/noarch classic === Я не уверен, что смогу воспроизвести сам. Столкнулся с проблемой, нашел схожую причину на bugs.kde.org, убедился, что решение оттуда помогло, отписал здесь для других.Что именно вызвало дублирование в базе - без понятия. Вряд ли просто создание imap папок с одинаковыми именами приведет к проблеме, что-то нужно еще на уровне базы akonadi. Сложность для пользователя в том, что kmail просто перестает работать совсем (вылетает на запуске), а не просто ругается на проблемный ящик. Не думаю, что данный сбой требует решение на уровне Альта. Обновлением пакета уже возникшую проблему не решить (требуется именно работа с базой), хотя, если суметь найти источник, можно сделать предотвращающий патч, но тогда возможны проблемы совместимости со следующими версиями kde. Тем более, что само сообщество kde о проблеме знает с 2013го и до сих пор не устранило. Но иметь русскоязычное решение на ассоциированном с Альт Линукс ресурсе необходимо. Особенно с учетом, что из таких только работающий bugzilla и мертвый форум.
(Ответ для JcVai на комментарий #0) > 3. Через вкладку "Просмотр" найти проблемные ящик с папкой (в моем случае > это ящик imap_resource_4 и папка trash в нем в терминах базы akonadi) > 4. Через вкладку "Агенты" перенастроить путь для проблемной папки (в моем > случае перенастройка указателя корзины ящика с сетевой/imap на локальную) > или отписаться (предполагаемый вариант в случае такой ошибки с другой > папкой) и перезапустить. Это можно сделать из обычных настроек учётной записи получения почты. P.S. В случае возникновения каких-то проблем рекомендую сначала чистить базу: $ akonadictl fsck $ akonadictl vacuum
"Это можно сделать из обычных настроек учётной записи получения почты." Можно, если суметь запустить эти настройки. Если б клиент kontakt/kmail хотя бы запускался - не пришлось бы лезть в консоль. Данная ошибка вызывает вылет именно на старте клиента, т.е. из известных мне графических вариантов - только консоль akonadi. Собственно, через которую и решал проблему. Кроме того, kmail/kontakt не показывает ресурсы по именам в базе, если они были переименованы. Т.е. достаточно проблематично без консоли сопоставить ящик user@ya.ru в kmail ресурсу imap4 в базе akonadi, а информация об ошибке идет именно с указанием ресурса в базе. "akonadictl fsck && akonadictl vacuum" не помогли в данном случае.
(Ответ для JcVai на комментарий #5) > Данная ошибка вызывает вылет именно на старте клиента, т.е. из известных мне > графических вариантов - только консоль akonadi. Ааа, ну да.
Честно говоря, я не представляю, что нужно сделать, чтобы этого добиться.
(Ответ для Sergey V Turchin на комментарий #7) > Честно говоря, я не представляю, что нужно сделать, чтобы этого добиться. В моем случае: утром предыдущего дня подключил ящики, вечером пробежался по настройкам всех ящиков, проверив соответствие ролей папок imap и закрывая окна настроек профиля/аккаунта по "ок", а не отменой, закрыл клиент, а на следующее утро вылезла проблема. Причину могу только предполагать. Как вариант, анализируя https://bugs.kde.org/show_bug.cgi?id=339214 и смежные, одним из вариантов может быть отсутствие проверки наличия существующего при создании/генерации задачи/триггера по работе с данной папкой. Т.е. для одного ресурса в базе создаются сразу две обработки, к которым идет требование уникальности. (Сугубо теоретическое имхо - глубоко не копал, ибо проблема случилась разово, больше не повторялась, а решается достаточно просто и оперативно)