[Dovecot] RE: imap segv trying to list inbox

Sam Powers spowers at rogueriver.k12.or.us
Tue Mar 9 03:31:27 EET 2004


(This is releveant information to the one that Alex Moore just posted,
but I'm not subscribed yet so I can't properly reply to that thread.
Sorry for creating a new one.)

I've got a crash in dovecot-imap when trying to list the inbox on a
nonexistant directory. I'm not sure how it should be handled, but
basically it's only happening when the directory in imap's MAIL
environment doesn't exist.

This is a problem for me because I'm trying to have dovecot create all
the necessary directories in the specified environment, as I don't know
if the user will pop/imap or recieve an email first, and the dir needs
to either be already ready, or created upon reciept. I've already got
postfix to create a ~/Maildir when a new mail comes in, but for my
migration plan to work, I need dovecot to create this directory instead
of segfaulting. ;)

dante:/usr/lib/dovecot# MAIL=maildir:/tmp/nonexistant gdb ./imap
(gdb) run
Starting program: /usr/lib/dovecot/imap 
(no debugging symbols found)...(no debugging symbols found)...
* PREAUTH [CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND
UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED] Logged in as
root
1 list "" inbox
(no debugging symbols found)...
Program received signal SIGSEGV, Segmentation fault.
0x400c32ef in readdir64 () from /lib/libc.so.6
(gdb) bt
#0  0x400c32ef in readdir64 () from /lib/libc.so.6
#1  0x0805c70b in maildir_expunge_locked ()
#2  0x0805cda1 in maildir_list_mailbox_init ()
#3  0x08052a60 in cmd_idle ()
#4  0x08052d4a in _cmd_list_full ()
#5  0x08052ea7 in cmd_list ()
#6  0x08054a19 in _client_reset_command ()
#7  0x08054aa8 in _client_input ()
#8  0x0808adb8 in io_loop_handler_run ()
#9  0x0808a748 in io_loop_run ()
#10 0x0805aab9 in main ()
#11 0x40034dc6 in __libc_start_main () from /lib/libc.so.6

If I use MAIL=maildir:/tmp/nonexistant, it crashes, but what I'm really
trying to do is MAIL=maildir:/home/staff/%u/Maildir/, which will
necessarily be nonexistant, and I'd like to see dovecot create this in
the manner that postfix does; with the logged in user's uid/gid.

Now, if I leave default_mail_env blank, and let dovecot's autodetection
do the work, it seems to create a maildir in ~/mail. This works just
fine, except it's the wrong directory.

Otherwise, dovecot rocks, and in another, less automatic setup, I've
been using it for the better part of a year with nothing but happy
results, and appreciate your work. (Irssi too :)

-Sam





More information about the dovecot mailing list