[Dovecot] 2.1: Error: Maildir filename has wrong S value, renamed the file from
Patrick Domack
patrickdk at patrickdk.com
Wed Mar 21 23:52:39 EET 2012
Quoting Timo Sirainen <tss at iki.fi>:
> On 21.3.2012, at 17.52, Ralf Hildebrandt wrote:
>
>> * Timo Sirainen <tss at iki.fi>:
>>
>>>> It's renaming itself to itself again?
>>>
>>> Hmm. Yeah, this is a bit problematic for compressed mails. If the
>>> S=size isn't correct, Dovecot fixes it by stat()ing the file and using
>>> it as the size. And that's of course wrong. Also Dovecot can't simply
>>> remove the S=size, because the current Maildir code assumes that it
>>> always exists for compressed mails. There's no easy and efficient way
>>> to fix this.. Maybe you could just manually rename the files to have
>>> correct S=size? :) zcat file | wc should give the right size.
>>
>> Right now the whole system is down because nobody can acces his/her
>> mails due to this.
>
> All of your mails are compressed and have wrong S=size in the
> filename? You can disable the check with the attached patch, but I'm
> not sure if there are other places where it fails. At least quota
> calculations won't be correct.
The issue only started happening since I upgraded to 2.1.1, it didn't
exist before then, I have check my system, and files before the date
of upgrade are fine, only files/emails moved after upgrading to 2.1.1
have lost the S= value.
I have made something that can pretty easily fix the issue, but it
only stays fixed till another email gets moved and looses it's S= value.
Sorry, I haven't had time to test out 2.1.3 yet.
This will print out the commands needed to fix the files though.
find . -name '*hostname:*' -exec 'gzip' '-l' '{}' ';' | awk
'/hostname/ {for(x=4;x<NF;x++) { fn=$x " "; } fn=fn $x;
split(fn,a,":"); print "mv \"" fn "\" \"" a[1] ",S=" $2 ":" a[2] "\"";}'
Just change hostname to dovecot is using in your files.
More information about the dovecot
mailing list