evolution seems to be stuck trying to migrate a maildir account on each restart.
I created an account of type «Maildir-format mail directories» (I think I did so by pointing it to an existing folder) Steps: Create a folder named foo. [it creates a folder named .foo] Close evolution (just closing the shell is enough) Reopen The folder is now named .foo (._2Efoo on disk) Close. Reopen. The folder is now named ._2Efoo (._2E_5F2Efoo on disk) And it goes on, creating things like: ._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F2Efoo evolution version is 3.12.5 There are some related console messages, but most seem a consequence of the bug rather than the cause (as the folder moves, the metadata file is missing). The most interesting are: > Failed to save the maildir version in ?thefolder/..maildir++?. (it should have succeeded) and > The overwriting error message was: database or disk is full (however there's enough space available on this fs) Running strace -f -eopen,openat,stat,rename,readdir,close evolution (below) it doesn't even seem to attempt creating ..maildir++ Manually creating the correct ..maildir++ stops this loops (restarts if deleted) but that's a manual fix. Any idea why is evolution failing to generate the ..maildir++ ? Is it possible that error is NULL? that would mean that maildir_store_get_folder_info_sync was called with a null error: camel-maildir-store.c: > 1299: if (!g_file_set_contents (meta_path, MAILDIR_CONTENT_VERSION_STR, -1, > error)) { > 661: maildir_migrate_hierarchy ((CamelMaildirStore *) store, maildir_version, > cancellable, error); > 785: if (scan_dirs (store, flags, TRUE, &fi, cancellable, error) == -1) And in the preamble of g_file_set_contents (at gfileutils.c:1172) > g_return_val_if_fail (error == NULL || *error == NULL, FALSE); https://git.gnome.org/browse/glib/tree/glib/gfileutils.c?h=glib-2-40#n1172 But this has been there forever: https://git.gnome.org/browse/glib/commit/glib/gfileutils.c?id=331548d91ce48f4d1b41fb147179c7680394cb5e So if that's the case the change would need to be on evolution side. Cheers Console output: > > (evolution:4897): camel-CRITICAL **: network_service_connect_sync: > assertion 'connectable != NULL' failed > > (evolution:4897): GLib-WARNING **: GError set over the top of a > previous GError or uninitialized memory. > This indicates a bug in someone's code. You must ensure an error is > NULL before it's set. > The overwriting error message was: Could not rename '.': No such file > or directory > > (evolution:4897): GLib-CRITICAL **: g_file_set_contents: assertion > 'error == NULL || *error == NULL' failed > > (evolution:4897): camel-local-provider-WARNING **: Failed to save the > maildir version in ?thefolder/..maildir++?. > > ** (evolution:4897): WARNING **: > (mail-folder-cache.c:1778):mail_folder_cache_note_store_thread: > runtime check failed: (async_context->info == NULL) > > (evolution:4897): evolution-mail-WARNING **: > receive_update_got_folderinfo: You must be working online to complete > this operation > > (evolution:4897): evolution-mail-WARNING **: > receive_update_got_folderinfo: Could not rename folder thefolder/. to > thefolder/._2E: Device or resource busy > > (evolution:4897): camel-CRITICAL **: network_service_connect_sync: > assertion 'connectable != NULL' failed > > (evolution:4897): camel-CRITICAL **: network_service_connect_sync: > assertion 'connectable != NULL' failed > > (evolution:4897): evolution-mail-WARNING **: > receive_update_got_folderinfo: You must be working online to complete > this operation > > (evolution:4897): GLib-WARNING **: GError set over the top of a > previous GError or uninitialized memory. > This indicates a bug in someone's code. You must ensure an error is > NULL before it's set. > The overwriting error message was: database or disk is full > > (evolution:4897): GLib-WARNING **: GError set over the top of a > previous GError or uninitialized memory. > This indicates a bug in someone's code. You must ensure an error is > NULL before it's set. > The overwriting error message was: no such table: > mem.._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F2Ebar > > (evolution:4897): GLib-WARNING **: GError set over the top of a > previous GError or uninitialized memory. > This indicates a bug in someone's code. You must ensure an error is > NULL before it's set. > The overwriting error message was: database or disk is full > > (evolution:4897): GLib-WARNING **: GError set over the top of a > previous GError or uninitialized memory. > This indicates a bug in someone's code. You must ensure an error is > NULL before it's set. > The overwriting error message was: no such table: mem.._2Efoo ****** strace: > [pid 5275] openat(AT_FDCWD, "thefolder/.foo", O_RDONLY|O_NONBLOCK| > O_DIRECTORY|O_CLOEXEC) = 24 > [pid 5275] close(24) = 0 > [pid 5275] > rename("thefolder/._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F5F2E_5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2Ebar.ibex.index", > > "thefolder/._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F5F2E_5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F5F2Ebar.ibex.index") > = -1 ENOENT (No such file or directory) > [pid 5275] > rename("thefolder/._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F5F2E_5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2Ebar.ibex.index.data", > > "thefolder/._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F5F2E_5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F5F2Ebar.ibex.index.data") > = -1 ENOENT (No such file or directory) > [pid 5275] > stat("thefolder/._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F5F2E_5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2Ebar.ev-summary", > 0x7f8f1abbe7e0) = -1 ENOENT (No such file or directory) > [pid 5275] > stat("thefolder/._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F5F2E_5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2Ebar.ev-summary-meta", > 0x7f8f1abbe7e0) = -1 ENOENT (No such file or directory) > [pid 5275] > stat("thefolder/._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F5F2E_5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2Ebar.cmeta", > <unfinished ...> > [pid 5275] <... stat resumed> {st_mode=S_IFREG|0644, > st_size=13, ...}) = 0 > [pid 5275] > rename("thefolder/._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F5F2E_5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2Ebar.cmeta", > > "thefolder/._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F5F2E_5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F5F2Ebar.cmeta") > = 0 > [pid 5277] <... stat resumed> {st_mode=S_IFDIR|0700, > st_size=4096, ...}) = 0 > [pid 5275] > stat("thefolder/._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F5F2E_5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2Ebar", > <unfinished ...> > [pid 5277] <... stat resumed> {st_mode=S_IFDIR|0700, > st_size=4096, ...}) = 0 > [pid 5275] <... stat resumed> {st_mode=S_IFDIR|0755, > st_size=4096, ...}) = 0 > [pid 5275] > rename("thefolder/._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F5F2E_5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2Ebar", > > "thefolder/._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F5F2E_5F5F5F5F5F5F2E_5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F5F2E_5F5F5F5F5F5F5F5F2Ebar") > = 0 > [pid 5275] rename("thefolder/.foo.ibex.index", > "thefolder/._2Efoo.ibex.index") = -1 ENOENT (No such file or > directory) > [pid 5275] rename("thefolder/.foo.ibex.index.data", > "thefolder/._2Efoo.ibex.index.data") = -1 ENOENT (No such file or > directory) > [pid 5275] stat("thefolder/.foo.ev-summary", 0x7f8f1abbe7e0) = -1 > ENOENT (No such file or directory) > [pid 5275] stat("thefolder/.foo.ev-summary-meta", 0x7f8f1abbe7e0) = > -1 ENOENT (No such file or directory) > [pid 5275] stat("thefolder/.foo.cmeta", 0x7f8f1abbe7e0) = -1 ENOENT > (No such file or directory) > [pid 5275] stat("thefolder/.foo", {st_mode=S_IFDIR|0700, > st_size=4096, ...}) = 0 > [pid 5275] rename("thefolder/.foo", "thefolder/._2Efoo") = 0 > [pid 5275] rename("thefolder/..ibex.index", > "thefolder/._2E.ibex.index") = -1 ENOENT (No such file or directory) > [pid 5275] rename("thefolder/..ibex.index.data", > "thefolder/._2E.ibex.index.data") = -1 ENOENT (No such file or > directory) > [pid 5275] stat("thefolder/..ev-summary", 0x7f8f1abbe830) = -1 ENOENT > (No such file or directory) > [pid 5275] stat("thefolder/..ev-summary-meta", 0x7f8f1abbe830) = -1 > ENOENT (No such file or directory) > [pid 5275] stat("thefolder/..cmeta", {st_mode=S_IFREG|0644, > st_size=13, ...}) = 0 > [pid 5275] rename("thefolder/..cmeta", "thefolder/._2E.cmeta") = 0 > [pid 5275] stat("thefolder/.", <unfinished ...> > [pid 5275] <... stat resumed> {st_mode=S_IFDIR|0755, > st_size=4096, ...}) = 0 > [pid 5275] rename("thefolder/.", "thefolder/._2E") = -1 EBUSY (Device > or resource busy) > [pid 5277] <... stat resumed> {st_mode=S_IFREG|0644, > st_size=13, ...}) = 0 > [pid 5275] stat("thefolder/._2E.cmeta", <unfinished ...> > [pid 5275] <... stat resumed> {st_mode=S_IFREG|0644, > st_size=13, ...}) = 0 > [pid 5275] rename("thefolder/._2E.cmeta", "thefolder/..cmeta") = 0 > [pid 5275] stat("thefolder/._2E.ev-summary", 0x7f8f1abbe830) = -1 > ENOENT (No such file or directory) > [pid 5275] stat("thefolder/._2E.ev-summary-meta", 0x7f8f1abbe830) = > -1 ENOENT (No such file or directory) > [pid 5275] rename("thefolder/._2E.ibex.index", > "thefolder/..ibex.index"Process 5282 attached > Process 5283 attached > ) = -1 ENOENT (No such file or directory) > [pid 5275] rename("thefolder/._2E.ibex.index.data", > "thefolder/..ibex.index.data") = -1 ENOENT (No such file or directory) > > (evolution:5256): GLib-WARNING **: GError set over the top of a > previous GError or uninitialized memory. > This indicates a bug in someone's code. You must ensure an error is > NULL before it's set. > The overwriting error message was: Can't rename: «.»: No such file or > directoty > > (evolution:5256): GLib-CRITICAL **: g_file_set_contents: assertion > 'error == NULL || *error == NULL' failed > > (evolution:5256): camel-local-provider-WARNING **: Failed to save the > maildir version in ‘thefolder/..maildir++’. > _______________________________________________ evolution-list mailing list evolution-list@gnome.org To change your list options or unsubscribe, visit ... https://mail.gnome.org/mailman/listinfo/evolution-list