On 08/12/2018 19:53, Jonathan Casiot via dovecot wrote:
Hi
I'm having an issue with doveadm batch - the following command always
crashes:
doveadm batch : mailbox status all inbox
Whereas the following work as expected:
doveadm mailbox status all inbox
doveadm batch : mailbox list
Any assistance gratefully received.
Debug output from the crash:
Debug: Loading modules from directory: /usr/lib64/dovecot
Debug: Module loaded: /usr/lib64/dovecot/lib01_acl_plugin.so
Debug: Module loaded: /usr/lib64/dovecot/lib10_mail_crypt_plugin.so
Debug: Module loaded: /usr/lib64/dovecot/lib90_stats_plugin.so
Debug: Loading modules from directory: /usr/lib64/dovecot/doveadm
Debug: Module loaded:
/usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so
Debug: Skipping module doveadm_expire_plugin, because dlopen() failed:
/usr/lib64/dovecot/doveadm/lib10_doveadm_expire_plugin.so: undefined
symbol: expire_set_deinit (this is usually intentional, so just ignore
this message)
Debug: Skipping module doveadm_quota_plugin, because dlopen() failed:
/usr/lib64/dovecot/doveadm/lib10_doveadm_quota_plugin.so: undefined
symbol: quota_user_module (this is usually intentional, so just ignore
this message)
Debug: Skipping module doveadm_fts_lucene_plugin, because dlopen()
failed: /usr/lib64/dovecot/doveadm/lib20_doveadm_fts_lucene_plugin.so:
undefined symbol: lucene_index_iter_deinit (this is usually intentional,
so just ignore this message)
Debug: Skipping module doveadm_fts_plugin, because dlopen() failed:
/usr/lib64/dovecot/doveadm/lib20_doveadm_fts_plugin.so: undefined
symbol: fts_user_get_language_list (this is usually intentional, so just
ignore this message)
Debug: Module loaded:
/usr/lib64/dovecot/doveadm/libdoveadm_mail_crypt_plugin.so
doveadm(jc): Debug: Effective uid=1001, gid=100, home=/home/jc
doveadm(jc): Debug: acl: No acl_shared_dict setting - shared mailbox
listing is disabled
doveadm(jc): Debug: mail_crypt_plugin: mail_crypt_curve setting missing
- generating EC keys disabled
doveadm(jc): Debug: Namespace inbox: type=private, prefix=, sep=.,
inbox=yes, hidden=no, list=yes, subscriptions=yes
location=mdbox:~/mdbox:ALT=~/Archive/tape/mdbox
doveadm(jc): Debug: fs: root=/home/jc/mdbox, index=, indexpvt=,
control=, inbox=, alt=/home/jc/Archive/tape/mdbox
doveadm(jc): Debug: acl: initializing backend with data: vfile
doveadm(jc): Debug: acl: acl username = jc
doveadm(jc): Debug: acl: owner = 1
doveadm(jc): Debug: acl vfile: Global ACLs disabled
doveadm(jc): Panic: file mail-storage.c: line 875 (mailbox_set_reason):
assertion failed: (reason != NULL)
doveadm(jc): Error: Raw backtrace:
/usr/lib64/dovecot/libdovecot.so.0(+0xa0e9e) [0x7fc993023e9e] ->
/usr/lib64/dovecot/libdovecot.so.0(default_fatal_handler+0x2a)
[0x7fc993023f0a] -> /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0)
[0x7fc992fb3c97] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x49856)
[0x7fc993301856] -> /usr/bin/doveadm(+0x348e2) [0x5631dbb5f8e2] ->
/usr/bin/doveadm(+0x2e1ad) [0x5631dbb591ad] ->
/usr/bin/doveadm(+0x2bd2c) [0x5631dbb56d2c] ->
/usr/bin/doveadm(+0x2c92a) [0x5631dbb5792a] ->
/usr/bin/doveadm(doveadm_mail_try_run+0x215) [0x5631dbb58285] ->
/usr/bin/doveadm(main+0x46a) [0x5631dbb473fa] ->
/lib64/libc.so.6(__libc_start_main+0xf5) [0x7fc992bd83d5] ->
/usr/bin/doveadm(+0x1c565) [0x5631dbb47565]
Aborted (core dumped)
And doveconf -n output:
# 2.2.36 (1f10bfa63): /etc/dovecot/dovecot.conf
# OS: Linux 3.10.0-957.1.3.el7.x86_64 x86_64 CentOS Linux release
7.6.1810 (Core)
# Hostname: ### redacted ###
first_valid_gid = 100
first_valid_uid = 1000
last_valid_gid = 100
last_valid_uid = 1999
listen = *
login_greeting = IMAP ready
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e
session=<%{session}> %k
mail_attribute_dict = file:%h/mdbox/dovecot-attributes
mail_location = mdbox:~/mdbox:ALT=~/Archive/tape/mdbox
mail_plugins = acl stats mail_crypt
mailbox_list_index = yes
mdbox_rotate_size = 16 M
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
separator = .
}
passdb {
driver = pam
}
plugin {
acl = vfile
mail_crypt_global_private_key = <### redacted ###
mail_crypt_global_public_key = <### redacted ###
mail_crypt_save_version = 2
stats_memory_limit = 16 M
stats_refresh = 30 secs
stats_track_cmds = yes
}
postmaster_address = ### redacted ###
protocols = imap
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
}
service imap-login {
process_limit = 200
process_min_avail = 4
service_count = 1
}
service stats {
fifo_listener stats-mail {
group = users
mode = 01224
}
}
ssl = required
ssl_cert = <### redacted ###
ssl_key = # hidden, use -P to show it
ssl_prefer_server_ciphers = yes
ssl_protocols = !SSLv2 !SSLv3 !TLSv1
userdb {
driver = passwd
}
verbose_proctitle = yes
protocol imap {
imap_idle_notify_interval = 10 mins
imap_metadata = yes
mail_max_userip_connections = 20
mail_plugins = acl stats mail_crypt imap_acl imap_stats
}
Regards,
Here is the gdb output for this issue - the status values in frame 6
look wrong:
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-114.el7
Copyright (C) 2013 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-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/doveadm...Reading symbols from
/usr/lib/debug/usr/bin/doveadm.debug...done.
done.
(gdb) run
Starting program: /usr/bin/doveadm batch : mailbox status all inbox
process 9660 is executing new program: /usr/bin/doveconf
process 9660 is executing new program: /usr/bin/doveadm
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
doveadm(jc): Panic: file mail-storage.c: line 875 (mailbox_set_reason):
assertion failed: (reason != NULL)
doveadm(jc): Error: Raw backtrace:
/usr/lib64/dovecot/libdovecot.so.0(+0xa0e9e) [0x7ffff73ade9e] ->
/usr/lib64/dovecot/libdovecot.so.0(default_fatal_handler+0x2a)
[0x7ffff73adf0a] -> /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0)
[0x7ffff733dc97] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x49856)
[0x7ffff768b856] -> /usr/bin/doveadm(+0x348e2) [0x5555555888e2] ->
/usr/bin/doveadm(+0x2e1ad) [0x5555555821ad] ->
/usr/bin/doveadm(+0x2bd2c) [0x55555557fd2c] ->
/usr/bin/doveadm(+0x2c92a) [0x55555558092a] ->
/usr/bin/doveadm(doveadm_mail_try_run+0x215) [0x555555581285] ->
/usr/bin/doveadm(main+0x46a) [0x5555555703fa] ->
/lib64/libc.so.6(__libc_start_main+0xf5) [0x7ffff6f623d5] ->
/usr/bin/doveadm(+0x1c565) [0x555555570565]
Program received signal SIGABRT, Aborted.
0x00007ffff6f76207 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:55
55 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(gdb) bt full
#0 0x00007ffff6f76207 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:55
resultvar = 0
pid = 9660
selftid = 9660
#1 0x00007ffff6f778f8 in __GI_abort () at abort.c:90
save_stage = 2
act = {__sigaction_handler = {sa_handler = 0x1, sa_sigaction =
0x1}, sa_mask = {__val = {7882532336211813423, 173, 140737344948160,
93824994941896, 140737341211075, 140737488346672, 93824994941896, 513,
5223750495495426816,
93824994941896, 140737341394611, 93824994941896,
140737488346768, 140737488347136, 140737341394953, 93824994941896}},
sa_flags = -147157558, sa_restorer = 0x7fffffffde01}
sigs = {__val = {32, 0 <repeats 15 times>}}
#2 0x00007ffff73ade96 in default_fatal_finish (type=<optimized out>,
status=status@entry=0) at failures.c:201
backtrace = 0x5555557e9c00
"/usr/lib64/dovecot/libdovecot.so.0(+0xa0e9e) [0x7ffff73ade9e] ->
/usr/lib64/dovecot/libdovecot.so.0(default_fatal_handler+0x2a)
[0x7ffff73adf0a] -> /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) [0x7ff"...
#3 0x00007ffff73adf0a in default_fatal_handler (ctx=0x7fffffffdee0,
format=<optimized out>, args=<optimized out>) at failures.c:215
status = 0
#4 0x00007ffff733dc97 in i_panic (format=format@entry=0x7ffff773c7c0
"file %s: line %d (%s): assertion failed: (%s)") at failures.c:275
ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0,
timestamp_usecs = 0}
args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area =
0x7fffffffdfe0, reg_save_area = 0x7fffffffdf20}}
#5 0x00007ffff768b856 in mailbox_set_reason (box=<optimized out>,
reason=<optimized out>) at mail-storage.c:875
__FUNCTION__ = "mailbox_set_reason"
#6 0x00005555555888e2 in status_mailbox (info=0x555555838c58,
ctx=0x5555557fe238) at doveadm-mail-mailbox-status.c:135
box = 0x555555838db8
status = {messages = 4151561466, recent = 32767, unseen =
1434453976, uidvalidity = 21845, uidnext = 0, first_unseen_seq = 0,
first_recent_uid = 4294959296, last_cached_seq = 32767, highest_modseq =
93824995016992,
highest_pvt_modseq = 93824995038873, keywords =
0x55555582cc50, permanent_flags = 4150865472, flags = 32767,
permanent_keywords = 0, allow_new_keywords = 0, nonpermanent_modseqs =
0, no_modseq_tracking = 0, have_guids = 0,
have_save_guids = 0, have_only_guid128 = 1}
metadata = {guid = "p\214~UUU\000\000\300e\177UUU\000",
virtual_size = 140737488347344, physical_size = 553903933854,
first_save_date = 93824995035120, cache_fields = 0x20, precache_fields =
(unknown: 0), backend_ns_prefix = 0x0,
backend_ns_type = (unknown: 48)}
#7 cmd_mailbox_status_run (_ctx=0x5555557fe238, user=<optimized out>)
at doveadm-mail-mailbox-status.c:172
_data_stack_cur_id = 2
ctx = 0x5555557fe238
iter = 0x555555838c30
info = 0x555555838c58
ret = 0
#8 0x00005555555821ad in cmd_batch_run (_ctx=0x5555557f64c8,
user=0x55555582caa8) at doveadm-mail-batch.c:41
cmdp__foreach_end = 0x5555557f66e0
ctx = 0x5555557f64c8
cmdp = 0x5555557f66d8
ret = 0
#9 0x000055555557fd2c in doveadm_mail_next_user
(ctx=ctx@entry=0x5555557f64c8, cctx=cctx@entry=0x7fffffffe2b0,
error_r=error_r@entry=0x7fffffffe240) at doveadm-mail.c:429
input = {module = 0x0, service = 0x5555555b9e2b "doveadm",
username = 0x5555557ef7c3 "jc", session_id = 0x0, session_id_prefix =
0x0, session_create_time = 0, local_ip = {family = 0, u = {ip6 =
{__in6_u = {
__u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 =
{0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, ip4 = {s_addr =
0}}}, remote_ip = {family = 0, u = {ip6 = {__in6_u = {__u6_addr8 =
'\000' <repeats 15 times>,
__u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 =
{0, 0, 0, 0}}}, ip4 = {s_addr = 0}}}, local_port = 0, remote_port = 0,
userdb_fields = 0x0, flags_override_add = (unknown: 0),
flags_override_remove = (unknown: 0),
no_userdb_lookup = 0, debug = 0}
error = 0xf9d0 <Address 0xf9d0 out of bounds>
ip = <optimized out>
ret = <optimized out>
__FUNCTION__ = "doveadm_mail_next_user"
#10 0x0000555555580833 in doveadm_mail_single_user
(ctx=ctx@entry=0x5555557f64c8, cctx=cctx@entry=0x7fffffffe2b0,
error_r=error_r@entry=0x7fffffffe240) at doveadm-mail.c:460
---Type <return> to continue, or q <return> to quit---
__FUNCTION__ = "doveadm_mail_single_user"
#11 0x000055555558092a in doveadm_mail_cmd_exec
(ctx=ctx@entry=0x5555557f64c8, cctx=cctx@entry=0x7fffffffe2b0,
wildcard_user=wildcard_user@entry=0x0) at doveadm-mail.c:621
ret = <optimized out>
error = 0x5555557e7750 "+AF:S:u:"
#12 0x0000555555581285 in doveadm_mail_cmd (argv=<optimized out>,
argc=6, cmd=0x5555557f6c90) at doveadm-mail.c:718
cctx = {cmd = 0x0, argc = 0, argv = 0x0, username =
0x5555557ef7c3 "jc", cli = false, tcp_server = false, local_ip = {family
= 0, u = {ip6 = {__in6_u = {__u6_addr8 = '\000' <repeats 15 times>,
__u6_addr16 = {0, 0, 0, 0, 0, 0, 0,
0}, __u6_addr32 = {0, 0, 0, 0}}}, ip4 = {s_addr =
0}}}, remote_ip = {family = 0, u = {ip6 = {__in6_u = {__u6_addr8 =
'\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
__u6_addr32 = {0, 0, 0, 0}}},
ip4 = {s_addr = 0}}}, local_port = 0, remote_port = 0,
conn = 0x0}
ctx = 0x5555557f64c8
getopt_args = 0x5555557e7750 "+AF:S:u:"
c = <optimized out>
wildcard_user = 0x0
#13 doveadm_mail_try_run (cmd_name=cmd_name@entry=0x5555557ef631
"batch", argc=6, argv=0x5555557ef5e8) at doveadm-mail.c:791
cmd = 0x5555557f6c90
#14 0x00005555555703fa in main (argc=6, argv=0x5555557ef5e8) at
doveadm.c:384
cctx = {cmd = 0x0, argc = 0, argv = 0x0, username =
0x5555557ef7c3 "jc", cli = true, tcp_server = false, local_ip = {family
= 0, u = {ip6 = {__in6_u = {__u6_addr8 = '\000' <repeats 15 times>,
__u6_addr16 = {0, 0, 0, 0, 0, 0, 0,
0}, __u6_addr32 = {0, 0, 0, 0}}}, ip4 = {s_addr =
0}}}, remote_ip = {family = 0, u = {ip6 = {__in6_u = {__u6_addr8 =
'\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
__u6_addr32 = {0, 0, 0, 0}}},
ip4 = {s_addr = 0}}}, local_port = 0, remote_port = 0,
conn = 0x0}
cmd_name = 0x5555557ef631 "batch"
quick_init = false
c = <optimized out>
(gdb) c
Continuing.
Program terminated with signal SIGABRT, Aborted.
The program no longer exists.
(gdb)
Regards,
--
Jonathan