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