crash when trying to upgrade from 2.0.x to 2.3.x

Eugene M. Zheganin eugene at zhegan.in
Wed Feb 15 06:29:05 UTC 2023


Hello,

I'm trying to migrate dovecot mail database from 2.0.9 on Linux to 
2.3.20 on FreeBSD. I've rsync'd the entire database, grabbed all the 
configs, changed the paths and permission, but when trying to access the 
mail from Thunderbird I have reproducible crash in the logs:


===Cut===
Feb 14 17:12:10 it-r-support dovecot[5888]: auth-worker(6378): Debug: mysql(localhost): Finished query 'SELECT maildir, 1143 AS uid, 1143 AS gid FROM mailbox WHERE username = 'zheganin-em at alamics.ru' AND active = '1'' in 0 msecs
Feb 14 17:12:10 it-r-support dovecot[5888]: auth-worker(6378): Debug: conn unix:auth-worker (uid=143): auth-worker<16>: sql(zheganin-em at alamics.ru,192.168.57.177,<oE2zjKn0FTXAqDmx>): Finished userdb lookup
Feb 14 17:12:10 it-r-support dovecot[5888]: auth-worker(6378): Debug: conn unix:auth-worker (uid=143): auth-worker<16>: Finished
Feb 14 17:12:10 it-r-support dovecot[5888]: auth: Debug: sql(zheganin-em at alamics.ru,192.168.57.177,<oE2zjKn0FTXAqDmx>): Finished userdb lookup
Feb 14 17:12:10 it-r-support dovecot[5888]: auth: Debug: master userdb out: USER        1282408449zheganin-em at alamics.ru   maildir=alamics.ru/zheganin-em/ uid=1143        gid=1143        auth_mech=PLAIN auth_token=15cceab95e1251ea97a8e5ff62c70d1b7a76c96f
Feb 14 17:12:10 it-r-support dovecot[5888]: imap-login: Login: user=<zheganin-em at alamics.ru>, method=PLAIN, rip=192.168.57.177, lip=172.16.11.13, mpid=6405, session=<oE2zjKn0FTXAqDmx>
Feb 14 17:12:10 it-r-support dovecot[5888]: imap(zheganin-em at alamics.ru)<6405><oE2zjKn0FTXAqDmx>: Panic: file array.c: line 10 (array_idx_modifiable_i): assertion failed: (idx < array->buffer->used / array->element_size)
Feb 14 17:12:10 it-r-support dovecot[5888]: imap(zheganin-em at alamics.ru)<6405><oE2zjKn0FTXAqDmx>: Fatal: master: service(imap): child 6405 killed with signal 6 (core dumped)
===Cut===

There's an older thread here mentioning that probably doveadm force-resync would help, but it doesn't fix this. Is there something that could be done here ?
I've also reported this in the FreeBSD bugtracker, but just in case decided to ask here too.

Backtrace:

===Cut===
# lldb /usr/local/libexec/dovecot/imap --core imap-6404.core
(lldb) target create "/usr/local/libexec/dovecot/imap" --core "imap-6404.core"
Core file '/var/cores/imap-6404.core' (x86_64) was loaded.
(lldb) bt
* thread #1, name = 'imap', stop reason = signal SIGABRT
   * frame #0: 0x000000001151133a libc.so.7`__sys_thr_kill + 10
     frame #1: 0x0000000011489c74 libc.so.7`__raise + 52
     frame #2: 0x000000001153b109 libc.so.7`abort + 73
     frame #3: 0x000000001137a336 libdovecot.so.0`___lldb_unnamed_symbol5855 + 150
     frame #4: 0x0000000011378ad1 libdovecot.so.0`___lldb_unnamed_symbol5844 + 49
     frame #5: 0x0000000011379881 libdovecot.so.0`___lldb_unnamed_symbol5846 + 33
     frame #6: 0x0000000011378ceb libdovecot.so.0`i_panic + 187
     frame #7: 0x000000001136a514 libdovecot.so.0`array_idx_modifiable_i + 100
     frame #8: 0x0000000012054a78 lib20_fts_plugin.so`fts_user_autoindex_exclude + 72
     frame #9: 0x0000000012051b3b lib20_fts_plugin.so`fts_mailbox_allocated + 267
     frame #10: 0x000000001113ad0b libdovecot-storage.so.0`hook_mailbox_allocated + 155
     frame #11: 0x0000000011134491 libdovecot-storage.so.0`mailbox_alloc + 449
     frame #12: 0x0000000001044311 imap`cmd_select_full + 353
     frame #13: 0x000000000104cd92 imap`command_exec + 178
     frame #14: 0x000000000104b64a imap`___lldb_unnamed_symbol1265 + 58
     frame #15: 0x000000000104b7b6 imap`___lldb_unnamed_symbol1265 + 422
     frame #16: 0x000000000104a151 imap`client_handle_input + 465
     frame #17: 0x00000000010488a8 imap`client_input + 120
     frame #18: 0x00000000113936df libdovecot.so.0`io_loop_call_io + 111
     frame #19: 0x0000000011396214 libdovecot.so.0`io_loop_handler_run_internal + 388
     frame #20: 0x0000000011393dea libdovecot.so.0`io_loop_handler_run + 378
     frame #21: 0x0000000011393c28 libdovecot.so.0`io_loop_run + 88
     frame #22: 0x00000000112f6208 libdovecot.so.0`master_service_run + 24
     frame #23: 0x000000000105af67 imap`main + 1383
     frame #24: 0x000000000103c11d imap`_start + 269
(lldb)
===Cut===

Same backtrace in GDB:

===Cut===
# gdb /usr/local/libexec/dovecot/imap --core imap-6404.core GNU gdb 
(GDB) 12.1 [GDB v12.1 for FreeBSD] Copyright (C) 2022 Free Software 
Foundation, Inc. License GPLv3+: GNU GPL version 3 or later 
<http://gnu.org/licenses/gpl.html> This is free software: you are free 
to change and redistribute it. There is NO WARRANTY, to the extent 
permitted by law. Type "show copying" and "show warranty" for details. 
This GDB was configured as "x86_64-portbld-freebsd13.1". Type "show 
configuration" for configuration details. For bug reporting 
instructions, please see: <https://www.gnu.org/software/gdb/bugs/>. Find 
the GDB manual and other documentation resources online at: 
<http://www.gnu.org/software/gdb/documentation/>. For help, type "help". 
Type "apropos word" to search for commands related to "word"... Reading 
symbols from /usr/local/libexec/dovecot/imap... (No debugging symbols 
found in /usr/local/libexec/dovecot/imap) [New LWP 100485] warning: 
Could not load shared library symbols for [vdso]. Do you need "set 
solib-search-path" or "set sysroot"? Core was generated by 
`dovecot/imap'. Program terminated with signal SIGABRT, Aborted. Sent by 
thr_kill() from pid 6404 and user 1143. #0  0x000000001151133a in 
thr_kill () from /lib/libc.so.7 (gdb) bt full #0  0x000000001151133a in 
thr_kill () from /lib/libc.so.7 No symbol table info available. #1 
  0x0000000011489c74 in raise () from /lib/libc.so.7 No symbol table 
info available. #2  0x000000001153b109 in abort () from /lib/libc.so.7 
No symbol table info available. #3  0x000000001137a336 in ?? () from 
/usr/local/lib/dovecot/libdovecot.so.0 No symbol table info available. 
#4  0x0000000011378ad1 in ?? () from 
/usr/local/lib/dovecot/libdovecot.so.0 No symbol table info available. 
#5  0x0000000011379881 in ?? () from 
/usr/local/lib/dovecot/libdovecot.so.0 No symbol table info available. 
#6  0x0000000011378ceb in i_panic () from 
/usr/local/lib/dovecot/libdovecot.so.0 No symbol table info available. 
#7  0x000000001136a514 in array_idx_modifiable_i () from 
/usr/local/lib/dovecot/libdovecot.so.0 No symbol table info available. 
#8  0x0000000012054a78 in fts_user_autoindex_exclude () from 
/usr/local/lib/dovecot/lib20_fts_plugin.so No symbol table info 
available. #9  0x0000000012051b3b in fts_mailbox_allocated () from 
/usr/local/lib/dovecot/lib20_fts_plugin.so No symbol table info 
available. #10 0x000000001113ad0b in hook_mailbox_allocated () from 
/usr/local/lib/dovecot/libdovecot-storage.so.0 No symbol table info 
available. #11 0x0000000011134491 in mailbox_alloc () from 
/usr/local/lib/dovecot/libdovecot-storage.so.0 No symbol table info 
available. #12 0x0000000001044311 in cmd_select_full () No symbol table 
info available. #13 0x000000000104cd92 in command_exec () No symbol 
table info available. #14 0x000000000104b64a in ?? () No symbol table 
info available. #15 0x000000000104b7b6 in ?? () No symbol table info 
available. #16 0x000000000104a151 in client_handle_input () No symbol 
table info available. #17 0x00000000010488a8 in client_input () No 
symbol table info available. #18 0x00000000113936df in io_loop_call_io 
() from /usr/local/lib/dovecot/libdovecot.so.0 No symbol table info 
available. #19 0x0000000011396214 in io_loop_handler_run_internal () 
from /usr/local/lib/dovecot/libdovecot.so.0 No symbol table info 
available. #20 0x0000000011393dea in io_loop_handler_run () from 
/usr/local/lib/dovecot/libdovecot.so.0 No symbol table info available. 
#21 0x0000000011393c28 in io_loop_run () from 
/usr/local/lib/dovecot/libdovecot.so.0 No symbol table info available. 
--Type <RET> for more, q to quit, c to continue without paging-- #22 
0x00000000112f6208 in master_service_run () from 
/usr/local/lib/dovecot/libdovecot.so.0 No symbol table info available. 
#23 0x000000000105af67 in main () No symbol table info available. (gdb)
===Cut===

Thanks.
Eugene.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20230215/c3fea0ef/attachment-0001.htm>


More information about the dovecot mailing list