Aragon Gouveia
2019-Dec-13 15:40 UTC
BUG: panic when using fs:posix as dict for acl_shared_dict
Hi Aki, I'm not sure if this bug was worked on?? Sadly I ran into it too recently, on version 2.3.4.1. Regards, Aragon On 2018/02/07 13:23, Aki Tuomi wrote:> Hi! > > Thank you for reporting this issue. We'll look into it. Maybe you can > use sqlite3 instead as workaround? > > Aki > > > On 07.02.2018 14:22, Marco Giunta wrote: >> Hi, >> I'm using Dovecot 2.2.33.2 on a RHEL 7, new installation. When I use >> fs:posix as dict for acl_shared_dict, like in Dovecot wiki >> (https://wiki.dovecot.org/SharedMailboxes/ClusterSetup), >> doveadm-server crash with error: >> >> # doveadm acl set -u USERNAME FOLDER user=DEST_USERNAME lookup read >> write-seen >> >> doveadm(USERNAME): Panic: file dict-fs.c: line 127 >> (fs_dict_iterate_init): assertion failed: ((flags & >> DICT_ITERATE_FLAG_RECURSE) == 0) >> doveadm(USERNAME): Error: Raw backtrace: >> /usr/lib64/dovecot/libdovecot.so.0(+0x9f3de) [0x7f0e4a4b23de] -> >> /usr/lib64/dovecot/libdovecot.so.0(default_fatal_handler+0x2a) >> [0x7f0e4a4b244a] -> /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) >> [0x7f0e4a44377c] -> /usr/lib64/dovecot/libdovecot.so.0(+0x31688) >> [0x7f0e4a444688] -> >> /usr/lib64/dovecot/libdovecot.so.0(dict_iterate_init_multiple+0x4d) >> [0x7f0e4a47cadd] -> >> /usr/lib64/dovecot/libdovecot.so.0(dict_iterate_init+0x29) >> [0x7f0e4a47cb89] -> >> /usr/lib64/dovecot/lib01_acl_plugin.so(acl_lookup_dict_rebuild+0x3e1) >> [0x7f0e49a40371] -> >> /usr/lib64/dovecot/lib01_acl_plugin.so(acl_backend_vfile_acllist_rebuild+0x488) >> [0x7f0e49a3dd18] -> >> /usr/lib64/dovecot/lib01_acl_plugin.so(acl_backend_vfile_object_update+0x3c7) >> [0x7f0e49a3e867] -> >> /usr/lib64/dovecot/lib01_acl_plugin.so(acl_mailbox_update_acl+0x68) >> [0x7f0e49a41e28] -> >> /usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so(+0x2c11) >> [0x7f0e48da1c11] -> >> /usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so(+0x3060) >> [0x7f0e48da2060] -> doveadm(+0x2b41c) [0x556f1280b41c] -> >> doveadm(+0x2c01a) [0x556f1280c01a] -> >> doveadm(doveadm_cmd_ver2_to_mail_cmd_wrapper+0x23b) [0x556f1280ce7b] >> -> doveadm(doveadm_cmd_run_ver2+0x50c) [0x556f1281c73c] -> >> doveadm(doveadm_cmd_try_run_ver2+0x37) [0x556f1281c7d7] -> >> doveadm(main+0x1e4) [0x556f127fb944] -> >> /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f0e4a071c05] -> >> doveadm(+0x1bd35) [0x556f127fbd35] >> Aborted >> >> Attached coredump and configuration. >> >> I'm not a programmer, but seems that assert is raised by >> 'fs_dict_iterate_init' function inside 'src/lib-dict-extra/dict-fs.c': >> >> static struct dict_iterate_context * >> fs_dict_iterate_init(struct dict *_dict, const char *const *paths, >> ???????????? enum dict_iterate_flags flags) >> { >> ... >> ??????? /* these flags are not supported for now */ >> ????i_assert((flags & DICT_ITERATE_FLAG_RECURSE) == 0); >> ... >> >> >> because it is called by 'acl_lookup_dict_iterate_read' function in >> file 'src/plugins/acl/acl-lookup-dict.c' >> >> static void acl_lookup_dict_iterate_read(struct acl_lookup_dict_iter >> *iter) >> { >> ... >> dict_iter = dict_iterate_init(iter->dict->dict, prefix, >> ????????????????????? DICT_ITERATE_FLAG_RECURSE); >> ... >> >> with DICT_ITERATE_FLAG_RECURSE set. >> >> >> Same problem also with Dovecot 2.3.0. >> >> Thanks, >> ? Marco >> >>
aki.tuomi at dovecot.fi
2019-Dec-13 15:47 UTC
BUG: panic when using fs:posix as dict for acl_shared_dict
It's not very high priority I'm afraid. Did you try using sqlite instead? Aki> On 13/12/2019 17:40 Aragon Gouveia <aragon at phat.za.net> wrote: > > > Hi Aki, > > I'm not sure if this bug was worked on?? Sadly I ran into it too > recently, on version 2.3.4.1. > > > Regards, > > Aragon > > > > On 2018/02/07 13:23, Aki Tuomi wrote: > > Hi! > > > > Thank you for reporting this issue. We'll look into it. Maybe you can > > use sqlite3 instead as workaround? > > > > Aki > > > > > > On 07.02.2018 14:22, Marco Giunta wrote: > >> Hi, > >> I'm using Dovecot 2.2.33.2 on a RHEL 7, new installation. When I use > >> fs:posix as dict for acl_shared_dict, like in Dovecot wiki > >> (https://wiki.dovecot.org/SharedMailboxes/ClusterSetup), > >> doveadm-server crash with error: > >> > >> # doveadm acl set -u USERNAME FOLDER user=DEST_USERNAME lookup read > >> write-seen > >> > >> doveadm(USERNAME): Panic: file dict-fs.c: line 127 > >> (fs_dict_iterate_init): assertion failed: ((flags & > >> DICT_ITERATE_FLAG_RECURSE) == 0) > >> doveadm(USERNAME): Error: Raw backtrace: > >> /usr/lib64/dovecot/libdovecot.so.0(+0x9f3de) [0x7f0e4a4b23de] -> > >> /usr/lib64/dovecot/libdovecot.so.0(default_fatal_handler+0x2a) > >> [0x7f0e4a4b244a] -> /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) > >> [0x7f0e4a44377c] -> /usr/lib64/dovecot/libdovecot.so.0(+0x31688) > >> [0x7f0e4a444688] -> > >> /usr/lib64/dovecot/libdovecot.so.0(dict_iterate_init_multiple+0x4d) > >> [0x7f0e4a47cadd] -> > >> /usr/lib64/dovecot/libdovecot.so.0(dict_iterate_init+0x29) > >> [0x7f0e4a47cb89] -> > >> /usr/lib64/dovecot/lib01_acl_plugin.so(acl_lookup_dict_rebuild+0x3e1) > >> [0x7f0e49a40371] -> > >> /usr/lib64/dovecot/lib01_acl_plugin.so(acl_backend_vfile_acllist_rebuild+0x488) > >> [0x7f0e49a3dd18] -> > >> /usr/lib64/dovecot/lib01_acl_plugin.so(acl_backend_vfile_object_update+0x3c7) > >> [0x7f0e49a3e867] -> > >> /usr/lib64/dovecot/lib01_acl_plugin.so(acl_mailbox_update_acl+0x68) > >> [0x7f0e49a41e28] -> > >> /usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so(+0x2c11) > >> [0x7f0e48da1c11] -> > >> /usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so(+0x3060) > >> [0x7f0e48da2060] -> doveadm(+0x2b41c) [0x556f1280b41c] -> > >> doveadm(+0x2c01a) [0x556f1280c01a] -> > >> doveadm(doveadm_cmd_ver2_to_mail_cmd_wrapper+0x23b) [0x556f1280ce7b] > >> -> doveadm(doveadm_cmd_run_ver2+0x50c) [0x556f1281c73c] -> > >> doveadm(doveadm_cmd_try_run_ver2+0x37) [0x556f1281c7d7] -> > >> doveadm(main+0x1e4) [0x556f127fb944] -> > >> /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f0e4a071c05] -> > >> doveadm(+0x1bd35) [0x556f127fbd35] > >> Aborted > >> > >> Attached coredump and configuration. > >> > >> I'm not a programmer, but seems that assert is raised by > >> 'fs_dict_iterate_init' function inside 'src/lib-dict-extra/dict-fs.c': > >> > >> static struct dict_iterate_context * > >> fs_dict_iterate_init(struct dict *_dict, const char *const *paths, > >> ???????????? enum dict_iterate_flags flags) > >> { > >> ... > >> ??????? /* these flags are not supported for now */ > >> ????i_assert((flags & DICT_ITERATE_FLAG_RECURSE) == 0); > >> ... > >> > >> > >> because it is called by 'acl_lookup_dict_iterate_read' function in > >> file 'src/plugins/acl/acl-lookup-dict.c' > >> > >> static void acl_lookup_dict_iterate_read(struct acl_lookup_dict_iter > >> *iter) > >> { > >> ... > >> dict_iter = dict_iterate_init(iter->dict->dict, prefix, > >> ????????????????????? DICT_ITERATE_FLAG_RECURSE); > >> ... > >> > >> with DICT_ITERATE_FLAG_RECURSE set. > >> > >> > >> Same problem also with Dovecot 2.3.0. > >> > >> Thanks, > >> ? Marco > >> > >>
Aragon Gouveia
2019-Dec-13 17:18 UTC
BUG: panic when using fs:posix as dict for acl_shared_dict
Yes, I have worked around it with sqlite in the mean time. Thank you! On 2019/12/13 16:47, aki.tuomi at dovecot.fi wrote:> It's not very high priority I'm afraid. Did you try using sqlite instead? > > Aki > >> On 13/12/2019 17:40 Aragon Gouveia <aragon at phat.za.net> wrote: >> >> >> Hi Aki, >> >> I'm not sure if this bug was worked on?? Sadly I ran into it too >> recently, on version 2.3.4.1. >> >> >> Regards, >> >> Aragon >> >> >> >> On 2018/02/07 13:23, Aki Tuomi wrote: >>> Hi! >>> >>> Thank you for reporting this issue. We'll look into it. Maybe you can >>> use sqlite3 instead as workaround? >>> >>> Aki >>> >>> >>> On 07.02.2018 14:22, Marco Giunta wrote: >>>> Hi, >>>> I'm using Dovecot 2.2.33.2 on a RHEL 7, new installation. When I use >>>> fs:posix as dict for acl_shared_dict, like in Dovecot wiki >>>> (https://wiki.dovecot.org/SharedMailboxes/ClusterSetup), >>>> doveadm-server crash with error: >>>> >>>> # doveadm acl set -u USERNAME FOLDER user=DEST_USERNAME lookup read >>>> write-seen >>>> >>>> doveadm(USERNAME): Panic: file dict-fs.c: line 127 >>>> (fs_dict_iterate_init): assertion failed: ((flags & >>>> DICT_ITERATE_FLAG_RECURSE) == 0) >>>> doveadm(USERNAME): Error: Raw backtrace: >>>> /usr/lib64/dovecot/libdovecot.so.0(+0x9f3de) [0x7f0e4a4b23de] -> >>>> /usr/lib64/dovecot/libdovecot.so.0(default_fatal_handler+0x2a) >>>> [0x7f0e4a4b244a] -> /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) >>>> [0x7f0e4a44377c] -> /usr/lib64/dovecot/libdovecot.so.0(+0x31688) >>>> [0x7f0e4a444688] -> >>>> /usr/lib64/dovecot/libdovecot.so.0(dict_iterate_init_multiple+0x4d) >>>> [0x7f0e4a47cadd] -> >>>> /usr/lib64/dovecot/libdovecot.so.0(dict_iterate_init+0x29) >>>> [0x7f0e4a47cb89] -> >>>> /usr/lib64/dovecot/lib01_acl_plugin.so(acl_lookup_dict_rebuild+0x3e1) >>>> [0x7f0e49a40371] -> >>>> /usr/lib64/dovecot/lib01_acl_plugin.so(acl_backend_vfile_acllist_rebuild+0x488) >>>> [0x7f0e49a3dd18] -> >>>> /usr/lib64/dovecot/lib01_acl_plugin.so(acl_backend_vfile_object_update+0x3c7) >>>> [0x7f0e49a3e867] -> >>>> /usr/lib64/dovecot/lib01_acl_plugin.so(acl_mailbox_update_acl+0x68) >>>> [0x7f0e49a41e28] -> >>>> /usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so(+0x2c11) >>>> [0x7f0e48da1c11] -> >>>> /usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so(+0x3060) >>>> [0x7f0e48da2060] -> doveadm(+0x2b41c) [0x556f1280b41c] -> >>>> doveadm(+0x2c01a) [0x556f1280c01a] -> >>>> doveadm(doveadm_cmd_ver2_to_mail_cmd_wrapper+0x23b) [0x556f1280ce7b] >>>> -> doveadm(doveadm_cmd_run_ver2+0x50c) [0x556f1281c73c] -> >>>> doveadm(doveadm_cmd_try_run_ver2+0x37) [0x556f1281c7d7] -> >>>> doveadm(main+0x1e4) [0x556f127fb944] -> >>>> /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f0e4a071c05] -> >>>> doveadm(+0x1bd35) [0x556f127fbd35] >>>> Aborted >>>> >>>> Attached coredump and configuration. >>>> >>>> I'm not a programmer, but seems that assert is raised by >>>> 'fs_dict_iterate_init' function inside 'src/lib-dict-extra/dict-fs.c': >>>> >>>> static struct dict_iterate_context * >>>> fs_dict_iterate_init(struct dict *_dict, const char *const *paths, >>>> ???????????? enum dict_iterate_flags flags) >>>> { >>>> ... >>>> ??????? /* these flags are not supported for now */ >>>> ????i_assert((flags & DICT_ITERATE_FLAG_RECURSE) == 0); >>>> ... >>>> >>>> >>>> because it is called by 'acl_lookup_dict_iterate_read' function in >>>> file 'src/plugins/acl/acl-lookup-dict.c' >>>> >>>> static void acl_lookup_dict_iterate_read(struct acl_lookup_dict_iter >>>> *iter) >>>> { >>>> ... >>>> dict_iter = dict_iterate_init(iter->dict->dict, prefix, >>>> ????????????????????? DICT_ITERATE_FLAG_RECURSE); >>>> ... >>>> >>>> with DICT_ITERATE_FLAG_RECURSE set. >>>> >>>> >>>> Same problem also with Dovecot 2.3.0. >>>> >>>> Thanks, >>>> ? Marco >>>> >>>>
Apparently Analagous Threads
- BUG: panic when using fs:posix as dict for acl_shared_dict
- BUG: panic when using fs:posix as dict for acl_shared_dict
- BUG: panic when using fs:posix as dict for acl_shared_dict
- Panic: file dict-fs.c:
- Wiki entry for expire plugin, PostgreSQL trigger needs update