Sieve redirect is broken in 2.3.7.2 - signal 11
Demonhost
maillist-dovecot at demonhost.hu
Mon Oct 7 12:09:49 EEST 2019
That's a good thought.
I'm building from the alpine repo and I indeed see pigeonhole is 0.5.5
https://git.alpinelinux.org/aports/tree/main/dovecot/APKBUILD?h=3.8-stable
Let me build it with 0.5.7.2
Regards,
Laszlo
On 2019. 10. 07. 10:45, Stephan Bosch via dovecot wrote:
>
>
> On 07/10/2019 10:17, Demonhost via dovecot wrote:
>> Hi Stephan,
>>
>> Here it is:
>>
>
> We still can't reproduce it here.
>
> First of all, did you update Pigeonhole along with Dovecot? This kind
> of weirdness can happen when Pigeonhole was compiled against a
> different version of Dovecot. You could compile Pigeonhole manually as
> well to make sure, which also gives you the opportunity to get debug
> symbols for Pigeonhole as well.
>
> Do you also have your configuration for me (output from `dovecot -n`) ?
>
> Also, can you issue in GDB after it crashed (as you did `bt full`
> before):
>
> f 1
> p src
>
> Regards,
>
> Stephan.
>
>
>> Program received signal SIGSEGV, Segmentation fault.
>> p_strdup (pool=pool at entry=0x55555579bc20, str=0x6d65642e6c69616d
>> <error: Cannot access memory at address 0x6d65642e6c69616d>) at
>> strfuncs.c:51
>> 51 strfuncs.c: No such file or directory.
>> (gdb) bt full
>> #0 p_strdup (pool=pool at entry=0x55555579bc20, str=0x6d65642e6c69616d
>> <error: Cannot access memory at address 0x6d65642e6c69616d>) at
>> strfuncs.c:51
>> mem = <optimized out>
>> len = <optimized out>
>> #1 0x00007ffff757dd1a in ssl_iostream_settings_init_from
>> (pool=pool at entry=0x55555579bc20, dest=dest at entry=0x55555579bcf8,
>> src=0x555555764038) at iostream-ssl.c:298
>> offset = 0
>> src_str = 0x555555764038
>> dest_str = 0x55555579bcf8
>> #2 0x00007ffff7522545 in smtp_submit_session_init
>> (input=0x555555764008, set=0x7fffffffe378) at smtp-submit.c:84
>> pool = 0x55555579bc20
>> #3 0x00007ffff752265a in smtp_submit_init_simple (input=<optimized
>> out>, set=<optimized out>, mail_from=0x555555759b80) at
>> smtp-submit.c:134
>> session = <optimized out>
>> subm = 0x0
>> #4 0x00007ffff687e923 in ?? () from
>> /usr/lib/dovecot/lib90_sieve_plugin.so
>> No symbol table info available.
>> #5 0x00007ffff65fe761 in sieve_smtp_start () from
>> /usr/lib/dovecot/libdovecot-sieve.so.0
>> No symbol table info available.
>> #6 0x00007ffff65fe869 in sieve_smtp_start_single () from
>> /usr/lib/dovecot/libdovecot-sieve.so.0
>> No symbol table info available.
>> #7 0x00007ffff661c71e in ?? () from
>> /usr/lib/dovecot/libdovecot-sieve.so.0
>> No symbol table info available.
>> #8 0x00007ffff660e8a8 in ?? () from
>> /usr/lib/dovecot/libdovecot-sieve.so.0
>> No symbol table info available.
>> #9 0x00007ffff66100d1 in sieve_result_execute () from
>> /usr/lib/dovecot/libdovecot-sieve.so.0
>> No symbol table info available.
>> #10 0x00007ffff661e9fc in ?? () from
>> /usr/lib/dovecot/libdovecot-sieve.so.0
>> No symbol table info available.
>> #11 0x00007ffff661f638 in sieve_multiscript_run () from
>> /usr/lib/dovecot/libdovecot-sieve.so.0
>> No symbol table info available.
>> #12 0x00007ffff687f7cb in ?? () from
>> /usr/lib/dovecot/lib90_sieve_plugin.so
>> No symbol table info available.
>> #13 0x00007ffff7b69960 in mail_deliver (ctx=0x7fffffffe9e0,
>> storage_r=0x7fffffffe9a8) at mail-deliver.c:498
>> muser = 0x555555777ef8
>> ret = <optimized out>
>> __func__ = "mail_deliver"
>> #14 0x0000555555556fd2 in lda_deliver (stderr_rejection=false,
>> rcpt_to_source=<optimized out>, rcpt_to=<optimized out>,
>> path=<optimized out>, user=<optimized out>,
>> service_user=<optimized out>, ctx=0x7fffffffe9e0) at main.c:253
>> storage = 0x0
>> errstr = 0x0
>> ret = <optimized out>
>> var_table = <optimized out>
>> lda_set = <optimized out>
>> smtp_set = <optimized out>
>> #15 main (argc=<optimized out>, argv=<optimized out>) at main.c:517
>> t = 0x0
>> box = 0x0
>> set_roots = {0x555555758ae0
>> <smtp_submit_setting_parser_info>, 0x555555758a80
>> <lda_setting_parser_info>, 0x0}
>> ctx = {pool = 0x555555759b40, set = 0x555555764078, smtp_set
>> = 0x555555764008, session = 0x555555759b68, session_time_msecs = 0,
>> delivery_time_started = {
>> ---Type <return> to continue, or q <return> to quit---
>> tv_sec = 1570435973, tv_usec = 126295}, dup_db =
>> 0x55555578e040, session_id = 0x0, src_mail = 0x555555790c68,
>> mail_from = 0x555555759b80, mail_params = {
>> auth = 0x0, body = {type =
>> SMTP_PARAM_MAIL_BODY_TYPE_UNSPECIFIED, ext = 0x0}, envid = 0x0, ret =
>> SMTP_PARAM_MAIL_RET_UNSPECIFIED, size = 0, extra_params = {
>> arr = {buffer = 0x0, element_size = 0}, v = 0x0,
>> v_modifiable = 0x0}}, rcpt_to = 0x555555759bb0, rcpt_params = {orcpt
>> = {addr_type = 0x0,
>> addr = 0x555555759bb0, addr_raw = 0x0}, notify =
>> SMTP_PARAM_RCPT_NOTIFY_UNSPECIFIED, extra_params = {arr = {buffer =
>> 0x0, element_size = 0}, v = 0x0,
>> v_modifiable = 0x0}}, rcpt_user = 0x555555777168,
>> rcpt_default_mailbox = 0x55555555763f "INBOX", dest_mail = 0x0, cache
>> = 0x0, tempfail_error = 0x0,
>> tried_default_save = false, saved_mail = false,
>> save_dest_mail = false, mailbox_full = false, dsn = false}
>> service_flags = <optimized out>
>> user = <optimized out>
>> errstr = 0x0
>> path = 0x0
>> rcpt_to = 0x0
>> final_rcpt_to = 0x0
>> mail_from = 0x555555759b80
>> storage_service = 0x7ffff7d6c5a8
>> service_user = 0x555555763198
>> service_input = {parent_event = 0x0, module = 0x55555555763b
>> "lda", service = 0x55555555763b "lda", username = 0x7ffff7832f31
>> "testaaaaaa at xxxxxxxxx.xx",
>> session_id = 0x0, session_id_prefix = 0x0,
>> session_create_time = 0, local_ip = {family = 0, u = {ip6 =
>> {__in6_union = {__s6_addr = '\000' <repeats 15 times>,
>> __s6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __s6_addr32
>> = {0, 0, 0, 0}}}, ip4 = {s_addr = 0}}}, remote_ip = {family = 0, u =
>> {ip6 = {__in6_union = {
>> __s6_addr = '\000' <repeats 15 times>, __s6_addr16
>> = {0, 0, 0, 0, 0, 0, 0, 0}, __s6_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
>> = false, debug = false,
>> conn_secured = false, conn_ssl_secured = false}
>> user_source = <optimized out>
>> rcpt_to_source = <optimized out>
>> process_euid = <optimized out>
>> stderr_rejection = false
>> ret = <optimized out>
>> c = <optimized out>
>>
>> On 2019. 10. 06. 23:28, Stephan Bosch via dovecot wrote:
>>>
>>>
>>> On 06/10/2019 23:14, Demonhost wrote:
>>>> I think alpine does not have that
>>>>
>>>> https://pkgs.alpinelinux.org/packages?name=dovecot*&branch=v3.8&repo=main&arch=x86_64
>>>>
>>>>
>>>> https://git.alpinelinux.org/aports/tree/main/dovecot/APKBUILD?h=3.8-stable
>>>>
>>>>
>>>> What else would help? strace?
>>>
>>> Do you have the opportunity to build Dovecot yourself, thereby
>>> including the debug symbols?
>>>
>>> Regards,
>>>
>>> Stephan.
>>>>
>>>> On 2019. 10. 06. 23:05, Stephan Bosch via dovecot wrote:
>>>>>
>>>>>
>>>>> On 06/10/2019 23:03, Demonhost wrote:
>>>>>> Hi Stephan,
>>>>>>
>>>>>> I managed to get GDB, I hope this one helps. If not I can send
>>>>>> the config too, but exactly same config works with 2.3.6.
>>>>>
>>>>> You don't have the debug symbols for Dovecot installed. Usually,
>>>>> your system will have a separate package for that. On Debian, it
>>>>> is called dovecot-dbg.
>>>>>
>>>>>>
>>>>>> 92b9d3412dc8:/$ gdb /usr/libexec/dovecot/dovecot-lda -f
>>>>>> root at xxxxxxxx -d test at xxxxxxxxx
>>>>>> GNU gdb (GDB) 8.0.1
>>>>>> Copyright (C) 2017 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-alpine-linux-musl".
>>>>>> Type "show configuration" for configuration details.
>>>>>> For bug reporting instructions, please see:
>>>>>> <http://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"...
>>>>>> Warning: //test at xxxxxxxxx: No such file or directory.
>>>>>> Reading symbols from /usr/libexec/dovecot/dovecot-lda...(no
>>>>>> debugging symbols found)...done.
>>>>>> //root at xxxxxxxx: No such file or directory.
>>>>>> (gdb) r -f root at xxxxxxxx -d test at xxxxxxxxx < message
>>>>>> Starting program: /usr/libexec/dovecot/dovecot-lda -f
>>>>>> root at xxxxxxxx -d test at xxxxxxxxx < message
>>>>>> process 359 is executing new program: /usr/bin/doveconf
>>>>>> process 359 is executing new program:
>>>>>> /usr/libexec/dovecot/dovecot-lda
>>>>>>
>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>> 0x00007ffff75b74f7 in p_strdup () from
>>>>>> /usr/lib/dovecot/libdovecot.so.0
>>>>>> (gdb) bt full
>>>>>> #0 0x00007ffff75b74f7 in p_strdup () from
>>>>>> /usr/lib/dovecot/libdovecot.so.0
>>>>>> No symbol table info available.
>>>>>> #1 0x00007ffff757dd1a in ssl_iostream_settings_init_from () from
>>>>>> /usr/lib/dovecot/libdovecot.so.0
>>>>>> No symbol table info available.
>>>>>> #2 0x00007ffff7522545 in smtp_submit_session_init () from
>>>>>> /usr/lib/dovecot/libdovecot.so.0
>>>>>> No symbol table info available.
>>>>>> #3 0x00007ffff752265a in smtp_submit_init_simple () from
>>>>>> /usr/lib/dovecot/libdovecot.so.0
>>>>>> No symbol table info available.
>>>>>> #4 0x00007ffff687e923 in ?? () from
>>>>>> /usr/lib/dovecot/lib90_sieve_plugin.so
>>>>>> No symbol table info available.
>>>>>> #5 0x00007ffff65fe761 in sieve_smtp_start () from
>>>>>> /usr/lib/dovecot/libdovecot-sieve.so.0
>>>>>> No symbol table info available.
>>>>>> #6 0x00007ffff65fe869 in sieve_smtp_start_single () from
>>>>>> /usr/lib/dovecot/libdovecot-sieve.so.0
>>>>>> No symbol table info available.
>>>>>> #7 0x00007ffff661c71e in ?? () from
>>>>>> /usr/lib/dovecot/libdovecot-sieve.so.0
>>>>>> No symbol table info available.
>>>>>> #8 0x00007ffff660e8a8 in ?? () from
>>>>>> /usr/lib/dovecot/libdovecot-sieve.so.0
>>>>>> No symbol table info available.
>>>>>> #9 0x00007ffff66100d1 in sieve_result_execute () from
>>>>>> /usr/lib/dovecot/libdovecot-sieve.so.0
>>>>>> No symbol table info available.
>>>>>> #10 0x00007ffff661e9fc in ?? () from
>>>>>> /usr/lib/dovecot/libdovecot-sieve.so.0
>>>>>> No symbol table info available.
>>>>>> #11 0x00007ffff661f638 in sieve_multiscript_run () from
>>>>>> /usr/lib/dovecot/libdovecot-sieve.so.0
>>>>>> No symbol table info available.
>>>>>> #12 0x00007ffff687f7cb in ?? () from
>>>>>> /usr/lib/dovecot/lib90_sieve_plugin.so
>>>>>> No symbol table info available.
>>>>>> #13 0x00007ffff7b69960 in mail_deliver () from
>>>>>> /usr/lib/dovecot/libdovecot-lda.so.0
>>>>>> No symbol table info available.
>>>>>> #14 0x0000555555556fd2 in main ()
>>>>>> No symbol table info available.
>>>>>>
>>>>>> On 2019. 10. 04. 14:42, Stephan Bosch wrote:
>>>>>>>
>>>>>>>
>>>>>>> Op 4-10-2019 om 12:10 schreef Demonhost via dovecot:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> If we use sieve redirect under dovecot 2.3.7.2 we end up with
>>>>>>>>
>>>>>>>> Oct 04 03:30:31 dockerhost docker[12154]: 2019-10-04T03:30:31
>>>>>>>> 53ac2ae27650 postfix: 0605F207B0F36: to=<xxxx at xxxx.xx>,
>>>>>>>> relay=127.0.0.1[127.0.0.1]:10024, delay=1.5,
>>>>>>>> delays=0.36/0/0/1.1, dsn=2.0.0, status=sent (250 2.0.0 from
>>>>>>>> MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as
>>>>>>>> 6FC89207B0F38)
>>>>>>>> Oct 04 03:30:31 dockerhost docker[12154]: 2019-10-04T03:30:31
>>>>>>>> 53ac2ae27650 postfix: 6FC89207B0F38: to=<xxxx at xxxx.xx>,
>>>>>>>> relay=dovecot, delay=0.31, delays=0.05/0/0/0.26, dsn=4.3.0,
>>>>>>>> status=deferred (Command died with signal 11:
>>>>>>>> "/usr/libexec/dovecot/dovecot-lda")
>>>>>>>>
>>>>>>>> Using docker with official alpine image.
>>>>>>>>
>>>>>>>> / # cat /etc/alpine-release
>>>>>>>> 3.8.4
>>>>>>>>
>>>>>>>> / # apk info -v | grep dovecot
>>>>>>>> WARNING: Ignoring APKINDEX.adfa7ceb.tar.gz: No such file or
>>>>>>>> directory
>>>>>>>> WARNING: Ignoring APKINDEX.efaa1f73.tar.gz: No such file or
>>>>>>>> directory
>>>>>>>> dovecot-2.3.7.2-r0
>>>>>>>> dovecot-fts-solr-2.3.7.2-r0
>>>>>>>> dovecot-ldap-2.3.7.2-r0
>>>>>>>> dovecot-pigeonhole-plugin-2.3.7.2-r0
>>>>>>>> dovecot-pigeonhole-plugin-ldap-2.3.7.2-r0
>>>>>>>>
>>>>>>>> Sieve rule is:
>>>>>>>> # rule:[test]
>>>>>>>> if header :contains "subject" "test"
>>>>>>>> {
>>>>>>>> redirect "testemail at gmail.com";
>>>>>>>> }
>>>>>>>>
>>>>>>>> In host's dmesg we found the following:
>>>>>>>> [213184.882341] traps: dovecot-lda[6128] general protection
>>>>>>>> ip:7ff6cf8144f7 sp:7fff5f800b30 error:0 in
>>>>>>>> libdovecot.so.0.0.0[7ff6cf724000+360000]
>>>>>>>>
>>>>>>>> Sorry, not knowledgeable enough on how to do the GBD debug.
>>>>>>>> -----------------
>>>>>>>> We went back to previous version and issue disappeared.
>>>>>>>>
>>>>>>>> 8b45bb255b67:/# cat /etc/alpine-release
>>>>>>>> 3.8.4
>>>>>>>> 8b45bb255b67:/# apk info -v | grep dovecot
>>>>>>>> WARNING: Ignoring APKINDEX.adfa7ceb.tar.gz: No such file or
>>>>>>>> directory
>>>>>>>> WARNING: Ignoring APKINDEX.efaa1f73.tar.gz: No such file or
>>>>>>>> directory
>>>>>>>> dovecot-2.3.6-r0
>>>>>>>> dovecot-fts-solr-2.3.6-r0
>>>>>>>> dovecot-ldap-2.3.6-r0
>>>>>>>> dovecot-pigeonhole-plugin-2.3.6-r0
>>>>>>>> dovecot-pigeonhole-plugin-ldap-2.3.6-r0
>>>>>>>>
>>>>>>>> Anyone else already had this problem or you know how to fix it?
>>>>>>>
>>>>>>> I can't readily reproduce it with the information available so
>>>>>>> far. Do you have the opportunity to obtain a GDB backtrace? You
>>>>>>> can e.g. run LDA manually at the command line with the same
>>>>>>> arguments and message input Postfix provides and wrap it in GDB
>>>>>>> if you can reproduce the crash.
>>>>>>>
>>>>>>> Your configuration may also help (output from `dovecot -n`)
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Stephan.
>>>>>>>
>>>>>
>>>
>
More information about the dovecot
mailing list