Ghost folders & imapd segfaults
Jukka Huhta
jukka.huhta at helsinki.fi
Wed Jan 20 09:30:29 EST 2010
We've had two tricky special cases of folders created by users. The
folder names contain an exclamation mark, which, I presume, isn't
handled as it should be.
The symptom is that the ghost folders get somehow created on a
different host than the "real" mailbox. That results in an annoying
error from a quota listing script: "This mailbox hierarchy does not
exist on a single backend server".
The first one was like
user.username1.fdasf!
which equals (according to cyradm) to fdasf at user.username1 with
permissions "anyone lrs". I could just add deletion permission to an
admin account and dm it.
But the other one is trickier. From mailbox list dump:
user.username2 1 i16!nkpd username2 lrswipkxtecda anyone p
user.username2.Drafts 1 i16!nkpd username2 lrswipkxtecda anyone p
user.username2.Folder 1 i16!nkpd username2 lrswipkxtecda anyone p
user.username2.Folder! 1 p01!default anyone lrs
"Folder" is a regular, working folder. "i16" is the backend server of
username2, "nkpd" is her partition, but p01 is a front end host, a
proxy! How could this happen? Through some failed folder rename?
How come there's "default" as partition? I cannot reproduce this on
purpose, but I cannot delete the "Folder! " folder (yes, there seems
to be a space) either: imapd process segfaults when trying. See:
cyradm> lm user.username2.Folder
user.username2.Folder (\HasNoChildren)
cyradm> lm "user.username2.Folder! "
@user.username2.Folder (\HasNoChildren)
cyradm> lm " @user.username2.Folder"
@user.username2.Folder (\HasNoChildren)
cyradm> sam " @user.username2.Folder" admin all
setaclmailbox: admin: lrswipkxtea:
cyradm> lm " @user.username2.Folder"
cyradm> lm " @user.username2.Folder"
[returned to shell, cyradm dies]
Maillog has this:
Jan 20 15:58:57 pcn7 admin/master[11756]: process 9773 exited,
signaled to death by 11
And syslog:
Jan 20 15:58:57 pcn7 kernel: imapd[9773]: segfault at 0000000000000000
rip 00000039746796f0 rsp 00007fff0ba77da8 error 4
According to gdb, imapd segfaults in strlen(). Of course I don't have
debug symbols compiled in...
Any hints?
(I must admit that cyradm is connecting to another frontend than p01
because I currently can't login to that one as admin without a
service break (don't ask).)
Running Cyrus 2.3.15 (Simon's -4 RPM release) on a CentOS cluster,
mupdate_config=standard.
--
Jukka Huhta
More information about the Info-cyrus
mailing list