[Evolution] evolution failing to generate the ..maildir++ or "your folder is now named ._2E_5F2E_5F5F2E_5F5F5F2E_5F5F5F5F2E_5F5F5F5F2Efolder"



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++’.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]