[Dovecot] Segfault in in rc7 when index does not exists
This is the trace
(gdb) run Starting program: /root/tmp/dovecot-1.0.rc7/src/imap/imap x select inbox
Program received signal SIGSEGV, Segmentation fault. mail_index_write_base_header (index=0x80e2a28, hdr=0xaff66028) at mail-index.c:1313 1313 memcpy(index->map->mmap_base, hdr, hdr_size); (gdb) bt #0 mail_index_write_base_header (index=0x80e2a28, hdr=0xaff66028) at mail-index.c:1313 #1 0x080902eb in mail_index_mark_corrupted (index=0x80e2a28) at mail-index.c:1839 #2 0x0809ca30 in mail_transaction_log_file_create (log=0x80e3928, path=0x80d2130 "/dovecot.index.log", dev=0, ino=0, file_size=0) at mail-transaction-log.c:575 #3 0x0809e138 in mail_transaction_log_file_open_or_create (log=0x80e3928, path=0x80d2130 "/dovecot.index.log") at mail-transaction-log.c:803 #4 0x0809e65c in mail_transaction_log_open_or_create (index=0x80e2a28) at mail-transaction-log.c:240 #5 0x08092f21 in mail_index_open (index=0x80e2a28, flags=MAIL_INDEX_OPEN_FLAG_CREATE, lock_method=MAIL_INDEX_LOCK_FCNTL) at mail-index.c:1489 #6 0x0808aa52 in index_storage_mailbox_init (ibox=0x80e3548, index=0x80e2a28, name=0x80c32e4 "INBOX", flags=0, move_to_memory=false) at index-storage.c:362 #7 0x08064d68 in maildir_open (storage=0x80dd420, name=0x80c32e4 "INBOX", flags=<value optimized out>) at maildir-storage.c:487 #8 0x08065628 in maildir_mailbox_open (_storage=0x80dd420, name=0x80c32e4 "INBOX", input=0x0, flags=0) at maildir-storage.c:560 #9 0x08059917 in _cmd_select_full (cmd=0x80dd62c, readonly=false) at cmd-select.c:32 #10 0x08059af7 in cmd_select (cmd=0x80dd62c) at cmd-select.c:92 #11 0x0805b3d4 in _client_input (context=0x80dd5e8) at client.c:377 #12 0x080b7f96 in io_loop_handler_run (ioloop=0x80db9c0) at ioloop-poll.c:199 #13 0x080b7348 in io_loop_run (ioloop=0x80db9c0) at ioloop.c:281 #14 0x0806316e in main (argc=Cannot access memory at address 0x0 ) at main.c:280 (gdb) p index->map $1 = (struct mail_index_map *) 0x0 (gdb)
the envisonment is:
DBOX_ROTATE_DAYS="1" DBOX_ROTATE_MIN_SIZE="16" DBOX_ROTATE_SIZE="2048" DOVECOT_VERSION="1.0.rc7" HOME="/srv/vmbox/spool/test/" IMAP_CLIENT_WORKAROUNDS="outlook-idle" IMAP_MAX_LINE_LENGTH="65536" IP="::ffff:127.0.0.1" LOCK_METHOD="fcntl" LOGGED_IN="1" LOG_TO_MASTER="1" MAIL="maildir:/" MAILBOX_IDLE_CHECK_INTERVAL="30" MAIL_CACHE_FIELDS="flags" MAIL_CACHE_MIN_MAIL_COUNT="0" MAIL_MAX_KEYWORD_LENGTH="50" MAIL_NEVER_CACHE_FIELDS="imap.envelope" MBOX_DIRTY_SYNCS="1" MBOX_DOTLOCK_CHANGE_TIMEOUT="120" MBOX_LAZY_WRITES="1" MBOX_LOCK_TIMEOUT="300" MBOX_MIN_INDEX_SIZE="0" MBOX_READ_LOCKS="fcntl" MBOX_WRITE_LOCKS="dotlock fcntl" POP3_CLIENT_WORKAROUNDS="" POP3_LOGOUT_FORMAT="top=%t/%p, retr=%r/%b, del=%d/%m, size=%s" POP3_UIDL_FORMAT="" RESTRICT_CHROOT="/srv/vmbox/spool/test" RESTRICT_GID_FIRST="1" RESTRICT_SETEXTRAGROUPS="mail" RESTRICT_SETGID="200" RESTRICT_SETUID="200" STDERR_CLOSE_SHUTDOWN="1" SYSLOG_FACILITY="16" USER="test@prato.linux.it"
The directory /srv/vmbox/spool/test contains:
# find /srv/vmbox/spool/test /srv/vmbox/spool/test /srv/vmbox/spool/test/cur /srv/vmbox/spool/test/new /srv/vmbox/spool/test/tmp
I hope this is enougth
Please keep me on CC because i'm not subscribed.
Ciao
P.S: the rc8 do exactly the same.
--
| Marco Nenciarini | Debian/GNU Linux Developer - Plug Member | | mnencia@prato.linux.it | http://www.prato.linux.it/~mnencia |
Key fingerprint = FED9 69C7 9E67 21F5 7D95 5270 6864 730D F095 E5E4
On Fri, 2006-10-13 at 19:06 +0200, Marco Nenciarini wrote:
Program received signal SIGSEGV, Segmentation fault. mail_index_write_base_header (index=0x80e2a28, hdr=0xaff66028) at mail-index.c:1313 1313 memcpy(index->map->mmap_base, hdr, hdr_size); (gdb) bt #0 mail_index_write_base_header (index=0x80e2a28, hdr=0xaff66028) at mail-index.c:1313 #1 0x080902eb in mail_index_mark_corrupted (index=0x80e2a28) at mail-index.c:1839 #2 0x0809ca30 in mail_transaction_log_file_create (log=0x80e3928, path=0x80d2130 "/dovecot.index.log", dev=0, ino=0, file_size=0) at mail-transaction-log.c:575 #3 0x0809e138 in mail_transaction_log_file_open_or_create (log=0x80e3928, path=0x80d2130 "/dovecot.index.log") at mail-transaction-log.c:803
Well, I'm not sure how you managed to get that exact crash, but I've fixed it anyway.
MAIL="maildir:/"
Your problem however is this. You're telling Dovecot to open maildir from root directory. Change "default_mail_env = maildir:%h" or something.
On Fri, Oct 13, 2006 at 09:40:05PM +0300, Timo Sirainen wrote:
On Fri, 2006-10-13 at 19:06 +0200, Marco Nenciarini wrote:
Program received signal SIGSEGV, Segmentation fault. mail_index_write_base_header (index=0x80e2a28, hdr=0xaff66028) at mail-index.c:1313 1313 memcpy(index->map->mmap_base, hdr, hdr_size); (gdb) bt #0 mail_index_write_base_header (index=0x80e2a28, hdr=0xaff66028) at mail-index.c:1313 #1 0x080902eb in mail_index_mark_corrupted (index=0x80e2a28) at mail-index.c:1839 #2 0x0809ca30 in mail_transaction_log_file_create (log=0x80e3928, path=0x80d2130 "/dovecot.index.log", dev=0, ino=0, file_size=0) at mail-transaction-log.c:575 #3 0x0809e138 in mail_transaction_log_file_open_or_create (log=0x80e3928, path=0x80d2130 "/dovecot.index.log") at mail-transaction-log.c:803
Well, I'm not sure how you managed to get that exact crash, but I've fixed it anyway.
With the help of the attached script (used in mail_executable under imap section)
MAIL="maildir:/"
Your problem however is this. You're telling Dovecot to open maildir from root directory. Change "default_mail_env = maildir:%h" or something.
Cool, it's works :)
Bye
--
| Marco Nenciarini | Debian/GNU Linux Developer - Plug Member | | mnencia@prato.linux.it | http://www.prato.linux.it/~mnencia |
Key fingerprint = FED9 69C7 9E67 21F5 7D95 5270 6864 730D F095 E5E4
On Sat, Oct 14, 2006 at 12:10:42PM +0200, Marco Nenciarini wrote:
On Fri, Oct 13, 2006 at 09:40:05PM +0300, Timo Sirainen wrote:
MAIL="maildir:/"
Your problem however is this. You're telling Dovecot to open maildir from root directory. Change "default_mail_env = maildir:%h" or something.
Cool, it's works :)
Sorry, it does not works. Dovecot does not crash anymore, but create an %h dir into the directory (/src/vmbox/spool/test/%h)
Bye
--
| Marco Nenciarini | Debian/GNU Linux Developer - Plug Member | | mnencia@prato.linux.it | http://www.prato.linux.it/~mnencia |
Key fingerprint = FED9 69C7 9E67 21F5 7D95 5270 6864 730D F095 E5E4
On Sat, 2006-10-14 at 18:30 +0200, Marco Nenciarini wrote:
On Sat, Oct 14, 2006 at 12:10:42PM +0200, Marco Nenciarini wrote:
On Fri, Oct 13, 2006 at 09:40:05PM +0300, Timo Sirainen wrote:
MAIL="maildir:/"
Your problem however is this. You're telling Dovecot to open maildir from root directory. Change "default_mail_env = maildir:%h" or something.
Cool, it's works :)
Sorry, it does not works. Dovecot does not crash anymore, but create an %h dir into the directory (/src/vmbox/spool/test/%h)
Where exactly are you setting the %h? Show what "dovecot -n" says? Normally the %h is expanded to home directory by the Dovecot master process before executing imap.
On Mon, Oct 16, 2006 at 12:48:01AM +0300, Timo Sirainen wrote:
On Sat, 2006-10-14 at 18:30 +0200, Marco Nenciarini wrote:
On Sat, Oct 14, 2006 at 12:10:42PM +0200, Marco Nenciarini wrote:
On Fri, Oct 13, 2006 at 09:40:05PM +0300, Timo Sirainen wrote:
MAIL="maildir:/"
Your problem however is this. You're telling Dovecot to open maildir from root directory. Change "default_mail_env = maildir:%h" or something.
Cool, it's works :)
Sorry, it does not works. Dovecot does not crash anymore, but create an %h dir into the directory (/src/vmbox/spool/test/%h)
Where exactly are you setting the %h? Show what "dovecot -n" says? Normally the %h is expanded to home directory by the Dovecot master process before executing imap.
I use that postgresql view for virtual user configuration:
DROP VIEW "dovecot_auth"; CREATE VIEW "dovecot_auth" as SELECT (phpgw_accounts.account_lid || '@prato.linux.it'::"varchar") AS userid, ('{PLAIN-MD5}'::"varchar" || phpgw_accounts.account_pwd) AS "password", 200 AS uid, 200 AS gid, ('/srv/vmbox/spool/'::"varchar" || phpgw_accounts.account_lid || '/./'::"varchar") AS home, 'maildir:.' AS mail FROM phpgw_accounts WHERE [...snip condition...]
ATM i've fonud that 'maildir:.' works.
Ciao
--
| Marco Nenciarini | Debian/GNU Linux Developer - Plug Member | | mnencia@prato.linux.it | http://www.prato.linux.it/~mnencia |
Key fingerprint = FED9 69C7 9E67 21F5 7D95 5270 6864 730D F095 E5E4
participants (2)
-
Marco Nenciarini
-
Timo Sirainen