I restarted Akonadi this morning and left the terminal window open. I then deleted several emails from one KMail folder and noticed this, repeated once for each deleted email, in the terminal window
akonadi_imap_resource_7(3524)/kdepimlibs (kimap) KIMAP::StoreJob::handleResponse: We asked for UID but the server didn't give it back, resultingFlags not stored.
After awhile I hacked around with Akonadi Console and eventually found that for the duplicated emails the table PIMITEMFLAGRELATIONS will have two records, one with the flag /SEEN and one with the flag /DELETED. I didn't look very hard, but it seems that pimitemflagrelations has only one record for emails that are not duplicated.
This SQL run from the DB Query tab of Akonadi Console seems to confirm that.
select * from pimitemflagrelation pif
INNER JOIN pimitemflagrelation pir ON pir.pimitem_id = pif.pimitem_id
where pif.flag_id = 6 and pir.flag_id = 2
-- where flag_id 6 == /DELETED and flag_id 2 == /SEEN
I admit that is poor SQL. I'm not a fan of MySQL, having decided long ago that its implementation of SQL is not compatible with my career goals.
It seems that message I saw in Akonadi's stdout is saying that the /SEEN record was not removed from pimitemflagrelations when the /DELETED record was added.
This bug is annoying...
I restarted Akonadi this morning and left the terminal window open. I then deleted several emails from one KMail folder and noticed this, repeated once for each deleted email, in the terminal window
akonadi_ imap_resource_ 7(3524) /kdepimlibs (kimap) KIMAP:: StoreJob: :handleResponse : We asked for UID but the server didn't give it back, resultingFlags not stored.
After awhile I hacked around with Akonadi Console and eventually found that for the duplicated emails the table PIMITEMFLAGRELA TIONS will have two records, one with the flag /SEEN and one with the flag /DELETED. I didn't look very hard, but it seems that pimitemflagrela tions has only one record for emails that are not duplicated.
This SQL run from the DB Query tab of Akonadi Console seems to confirm that.
select * from pimitemflagrelation pif
INNER JOIN pimitemflagrelation pir ON pir.pimitem_id = pif.pimitem_id
where pif.flag_id = 6 and pir.flag_id = 2
-- where flag_id 6 == /DELETED and flag_id 2 == /SEEN
I admit that is poor SQL. I'm not a fan of MySQL, having decided long ago that its implementation of SQL is not compatible with my career goals.
It seems that message I saw in Akonadi's stdout is saying that the /SEEN record was not removed from pimitemflagrela tions when the /DELETED record was added.