Sieve redirect is broken in 2.3.7.2 - signal 11

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Sieve redirect is broken in 2.3.7.2 - signal 11

Dovecot mailing list
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=<[hidden email]>,
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=<[hidden email]>, 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 "[hidden email]";
}

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?

Thanks in advance.

Reply | Threaded
Open this post in threaded view
|

Re: Sieve redirect is broken in 2.3.7.2 - signal 11

Dovecot mailing list


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=<[hidden email]>,
> 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=<[hidden email]>, 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 "[hidden email]";
> }
>
> 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.

Reply | Threaded
Open this post in threaded view
|

Re: Sieve redirect is broken in 2.3.7.2 - signal 11

Dovecot mailing list
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.

92b9d3412dc8:/$ gdb /usr/libexec/dovecot/dovecot-lda -f root@xxxxxxxx -d
test@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@xxxxxxxxx: No such file or directory.
Reading symbols from /usr/libexec/dovecot/dovecot-lda...(no debugging
symbols found)...done.
//root@xxxxxxxx: No such file or directory.
(gdb) r -f root@xxxxxxxx -d test@xxxxxxxxx < message
Starting program: /usr/libexec/dovecot/dovecot-lda -f root@xxxxxxxx -d
test@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=<[hidden email]>,
>> 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=<[hidden email]>,
>> 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 "[hidden email]";
>> }
>>
>> 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.
>
Reply | Threaded
Open this post in threaded view
|

Re: Sieve redirect is broken in 2.3.7.2 - signal 11

Dovecot mailing list


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@xxxxxxxx
> -d test@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@xxxxxxxxx: No such file or directory.
> Reading symbols from /usr/libexec/dovecot/dovecot-lda...(no debugging
> symbols found)...done.
> //root@xxxxxxxx: No such file or directory.
> (gdb) r -f root@xxxxxxxx -d test@xxxxxxxxx < message
> Starting program: /usr/libexec/dovecot/dovecot-lda -f root@xxxxxxxx -d
> test@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=<[hidden email]>,
>>> 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=<[hidden email]>,
>>> 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 "[hidden email]";
>>> }
>>>
>>> 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.
>>

Reply | Threaded
Open this post in threaded view
|

Re: Sieve redirect is broken in 2.3.7.2 - signal 11

Dovecot mailing list
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?

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@xxxxxxxx
>> -d test@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@xxxxxxxxx: No such file or directory.
>> Reading symbols from /usr/libexec/dovecot/dovecot-lda...(no debugging
>> symbols found)...done.
>> //root@xxxxxxxx: No such file or directory.
>> (gdb) r -f root@xxxxxxxx -d test@xxxxxxxxx < message
>> Starting program: /usr/libexec/dovecot/dovecot-lda -f root@xxxxxxxx
>> -d test@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=<[hidden email]>,
>>>> 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=<[hidden email]>,
>>>> 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 "[hidden email]";
>>>> }
>>>>
>>>> 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.
>>>
>
Reply | Threaded
Open this post in threaded view
|

Re: Sieve redirect is broken in 2.3.7.2 - signal 11

Dovecot mailing list


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@xxxxxxxx -d test@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@xxxxxxxxx: No such file or directory.
>>> Reading symbols from /usr/libexec/dovecot/dovecot-lda...(no
>>> debugging symbols found)...done.
>>> //root@xxxxxxxx: No such file or directory.
>>> (gdb) r -f root@xxxxxxxx -d test@xxxxxxxxx < message
>>> Starting program: /usr/libexec/dovecot/dovecot-lda -f root@xxxxxxxx
>>> -d test@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=<[hidden email]>,
>>>>> 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=<[hidden email]>,
>>>>> 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 "[hidden email]";
>>>>> }
>>>>>
>>>>> 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.
>>>>
>>

Reply | Threaded
Open this post in threaded view
|

Re: Sieve redirect is broken in 2.3.7.2 - signal 11

Dovecot mailing list
Hi Stephan,

Here it is:

Program received signal SIGSEGV, Segmentation fault.
p_strdup (pool=pool@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@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@entry=0x55555579bc20, dest=dest@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
"[hidden email]",
           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@xxxxxxxx -d test@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@xxxxxxxxx: No such file or directory.
>>>> Reading symbols from /usr/libexec/dovecot/dovecot-lda...(no
>>>> debugging symbols found)...done.
>>>> //root@xxxxxxxx: No such file or directory.
>>>> (gdb) r -f root@xxxxxxxx -d test@xxxxxxxxx < message
>>>> Starting program: /usr/libexec/dovecot/dovecot-lda -f root@xxxxxxxx
>>>> -d test@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=<[hidden email]>,
>>>>>> 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=<[hidden email]>,
>>>>>> 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 "[hidden email]";
>>>>>> }
>>>>>>
>>>>>> 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.
>>>>>
>>>
>
Reply | Threaded
Open this post in threaded view
|

Re: Sieve redirect is broken in 2.3.7.2 - signal 11

Dovecot mailing list
Sorry, I figured some is still missing. Here is the updated one

Program received signal SIGSEGV, Segmentation fault.
p_strdup (pool=pool@entry=0x55555579bc40, 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@entry=0x55555579bc40, 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@entry=0x55555579bc40, dest=dest@entry=0x55555579bd18,
src=0x555555763ef8) at iostream-ssl.c:298
         offset = 0
         src_str = 0x555555763ef8
         dest_str = 0x55555579bd18
#2  0x00007ffff7522545 in smtp_submit_session_init
(input=0x555555763ec8, set=set@entry=0x7fffffffe368) at smtp-submit.c:84
         pool = 0x55555579bc40
#3  0x00007ffff752265a in smtp_submit_init_simple (input=<optimized
out>, set=set@entry=0x7fffffffe368,
mail_from=mail_from@entry=0x555555759ba0) at smtp-submit.c:134
         session = <optimized out>
         subm = 0x0
#4  0x00007ffff687e923 in lda_sieve_smtp_start (senv=<optimized out>,
mail_from=0x555555759ba0) at lda-sieve-plugin.c:86
         dctx = 0x7fffffffe9d0
         user = 0x555555776b28
         ssl_set = {min_protocol = 0x555555763de8 "TLSv1", cipher_list =
0x555555763dc0 "ALL:!LOW:!SSLv2:!EXP:!aNULL", curve_list =
0x555555763de0 "", ca = 0x0,
           ca_file = 0x0, ca_dir = 0x0, cert = {cert = 0x0, key = 0x0,
key_password = 0x0}, alt_cert = {cert = 0x0, key = 0x0, key_password =
0x0}, dh = 0x0,
           cert_username_field = 0x0, crypto_device = 0x555555763df0 "",
verbose = false, verbose_invalid_cert = false, skip_crl_check = false,
           verify_remote_cert = true, allow_invalid_cert = false,
prefer_server_ciphers = false, compression = false, tickets = false}
#5  0x00007ffff65fe761 in sieve_smtp_start (senv=0x7fffffffe7d0,
mail_from=0x555555759ba0) at sieve-smtp.c:33
         handle = <optimized out>
#6  0x00007ffff65fe869 in sieve_smtp_start_single
(senv=senv@entry=0x7fffffffe7d0, rcpt_to=0x5555557a0240,
mail_from=<optimized out>,
     output_r=output_r@entry=0x7fffffffe4d0) at sieve-smtp.c:68
         sctx = <optimized out>
#7  0x00007ffff661c71e in act_redirect_send (new_msg_id=0x55555575de88
"<dovecot-sieve-1570437587-782528-0@98c9dbdf40ea>", ctx=0x5555557a0238,
mail=0x55555578f8a8,
     aenv=0x5555557a00d0) at cmd-redirect.c:339
         output = 0x38
         svinst = 0x555555796028
         msgctx = 0x555555799d00
         senv = 0x7fffffffe7d0
         sctx = <optimized out>
         ret = <optimized out>
         env_from = {type = SIEVE_ADDRESS_SOURCE_DEFAULT, address = 0x0}
         input = 0x55555579a1a0
         sender = 0x555555759ba0
         error = 0x7ffff75063a3 <__x86_return_thunk+5>
"\363\220\017\256\350\353\371H\215d$\b\303\350\a"
         hide_headers = {0x7ffff66497aa "Return-Path", 0x7ffff664edf7
"X-Sieve", 0x7ffff664fbb6 "X-Sieve-Redirected-From"}
         hide_headers = {0x7ffff66497aa "Return-Path", 0x7ffff664edf7
"X-Sieve", 0x7ffff664fbb6 "X-Sieve-Redirected-From"}
#8  act_redirect_commit (action=<optimized out>, aenv=0x5555557a00d0,
tr_context=<optimized out>, keep=0x7fffffffe557) at cmd-redirect.c:486
         svinst = 0x555555796028
         ctx = 0x5555557a0238
         msgctx = <optimized out>
         mail = 0x55555578f8a8
         msgdata = <optimized out>
         senv = 0x7fffffffe7d0
         recipient = 0x555555759bd0
         msg_id = <optimized out>
         new_msg_id = 0x55555575de88
"<dovecot-sieve-1570437587-782528-0@98c9dbdf40ea>"
         dupeid = <optimized out>
         resent_id = 0x0
         list_id = 0x0
#9  0x00007ffff660e8a8 in sieve_result_action_commit
(impl_keep=0x7fffffffe557, rac=0x5555557a0270, result=0x5555557a00a8) at
sieve-result.c:1208
         act = 0x5555557a0270
         rsef = <optimized out>
         cstatus = 1
#10 sieve_result_action_commit_or_rollback
(result=result@entry=0x5555557a00a8, rac=rac@entry=0x5555557a0270,
status=<optimized out>,
     implicit_keep=implicit_keep@entry=0x7fffffffe5b3,
keep=keep@entry=0x5555557a0224,
commit_status=commit_status@entry=0x7fffffffe5b4) at sieve-result.c:1269
         impl_keep = true
         cstatus = 1
         act = 0x5555557a0270
#11 0x00007ffff66100d1 in sieve_result_transaction_commit_or_rollback
(keep=0x5555557a0224, implicit_keep=0x7fffffffe5b3, last=0x0,
first=0x5555557a0270,
     status=<optimized out>, result=0x5555557a00a8) at sieve-result.c:1343
         act = 0x5555557a0270
         rac = 0x5555557a0270
         commit_status = 1
         seen_delivery = false
#12 sieve_result_execute (result=0x5555557a00a8,
keep=keep@entry=0x5555557a0224, ehandler=<optimized out>,
flags=<optimized out>) at sieve-result.c:1422
         status = <optimized out>
         result_status = <optimized out>
         first_action = 0x5555557a0270
         last_action = 0x0
         implicit_keep = true
         ret = <optimized out>
#13 0x00007ffff661e9fc in sieve_multiscript_execute
(mscript=0x5555557a0200, ehandler=<optimized out>, flags=<optimized
out>, keep=0x5555557a0224) at sieve.c:685
No locals.
#14 0x00007ffff661f638 in sieve_multiscript_run
(mscript=mscript@entry=0x5555557a0200, sbin=<optimized out>,
exec_ehandler=exec_ehandler@entry=0x55555578f568,
     action_ehandler=0x5555557a6d48,
flags=flags@entry=SIEVE_EXECUTE_FLAG_NOGLOBAL) at sieve.c:714
No locals.
#15 0x00007ffff687f7cb in lda_sieve_execute_script
(error_r=0x7fffffffe6a4, discard_script=false, index=1,
script=0x555555799528, mscript=0x5555557a0200,
     srctx=0x7fffffffe760) at lda-sieve-plugin.c:481
         exec_ehandler = 0x55555578f568
         action_ehandler = 0x5555557a6d48
         sbin = 0x5555557a2d28
         debug = false
         svinst = 0x555555796028
         mdctx = 0x7fffffffe9d0
         cpflags = SIEVE_COMPILE_FLAG_NOGLOBAL
         user_script = <optimized out>
         exflags = SIEVE_EXECUTE_FLAG_NOGLOBAL
         more = <optimized out>
#16 lda_sieve_execute_scripts (srctx=0x7fffffffe760) at
lda-sieve-plugin.c:569
         more = <optimized out>
         mscript = 0x5555557a0200
         exec_ehandler = <optimized out>
         action_ehandler = 0x5555557a2d28
         svinst = 0x555555796028
         mdctx = 0x7fffffffe9d0
         script = 0x555555799528
         last_script = 0x555555799528
         discard_script = false
         ret = <optimized out>
         error = SIEVE_ERROR_NONE
         i = 1
#17 lda_sieve_execute (storage_r=0x7fffffffe998, srctx=0x7fffffffe760)
at lda-sieve-plugin.c:894
         msgdata = {mail = 0x55555578f8a8, auth_user = 0x555555776c40
"[hidden email]", id = 0x0, envelope = {mail_from = 0x555555759ba0,
             mail_params = 0x7fffffffea28, rcpt_to = 0x555555759bd0,
rcpt_params = 0x7fffffffea70}}
         debug = <optimized out>
         mdctx = 0x7fffffffe9d0
         svinst = <optimized out>
         scriptenv = {user = 0x555555776b28, postmaster_address =
0x555555777610, default_mailbox = 0x55555555763f "INBOX",
mailbox_autocreate = true,
           mailbox_autosubscribe = true, script_context =
0x7fffffffe9d0, smtp_start = 0x7ffff687e8c7 <lda_sieve_smtp_start>,
           smtp_add_rcpt = 0x7ffff687e8bc <lda_sieve_smtp_add_rcpt>,
smtp_send = 0x7ffff687e8b4 <lda_sieve_smtp_send>,
           smtp_abort = 0x7ffff687e876 <lda_sieve_smtp_abort>,
smtp_finish = 0x7ffff687e822 <lda_sieve_smtp_finish>,
           duplicate_check = 0x7ffff687e7f4 <lda_sieve_duplicate_check>,
duplicate_mark = 0x7ffff687e808 <lda_sieve_duplicate_mark>,
           duplicate_flush = 0x7ffff687e7e7 <lda_sieve_duplicate_flush>,
reject_mail = 0x7ffff687e7de <lda_sieve_reject_mail>, exec_status =
0x7fffffffe6d8,
           trace_log = 0x0, trace_config = {level = SIEVE_TRLVL_NONE,
flags = 0}}
         trace_config = {level = SIEVE_TRLVL_NONE, flags = 0}
         trace_log = 0x0
         estatus = {last_storage = 0x0, message_saved = false,
message_forwarded = false, tried_default_save = false, keep_original =
false, store_failed = false}
         error = 0x2 <error: Cannot access memory at address 0x2>
#18 lda_sieve_deliver_mail (mdctx=<optimized out>,
storage_r=0x7fffffffe998) at lda-sieve-plugin.c:956
         _data_stack_cur_id = 2
         srctx = {svinst = 0x555555796028, mdctx = 0x7fffffffe9d0,
home_dir = 0x555555777300 "/vmail/xxxxxxxxx.xx/testaaaaaa/", scripts =
0x55555575dd88,
           script_count = 1, user_script = 0x555555799528, main_script =
0x555555799528, discard_script = 0x0, msgdata = 0x7fffffffe6e8,
scriptenv = 0x7fffffffe7d0,
           user_ehandler = 0x55555578f568, master_ehandler =
0x55555578f448, action_ehandler = 0x0,
           userlog = 0x55555575de10
"/vmail/xxxxxxxxx.xx/testaaaaaa/dovecot.sieve.log"}
         mail_set = <optimized out>
         debug = <optimized out>
         svenv = {hostname = 0x555555763d88 "98c9dbdf40ea", domainname =
0x0, base_dir = 0x555555763680 "/run/dovecot",
           username = 0x555555776c40 "[hidden email]", home_dir
= 0x555555777300 "/vmail/xxxxxxxxx.xx/testaaaaaa/", temp_dir =
0x555555777508 "/tmp",
           flags = SIEVE_FLAG_HOME_RELATIVE, location =
SIEVE_ENV_LOCATION_MDA, delivery_phase = SIEVE_DELIVERY_PHASE_DURING}
         ret = 0
#19 0x00007ffff7b69960 in mail_deliver (ctx=0x7fffffffe9d0,
storage_r=0x7fffffffe998) at mail-deliver.c:498
         muser = 0x5555557778b8
         ret = <optimized out>
         __func__ = "mail_deliver"
#20 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=0x7fffffffe9d0) at main.c:253
         storage = 0x0
         errstr = 0x0
         ret = <optimized out>
         var_table = <optimized out>
         lda_set = <optimized out>
         smtp_set = <optimized out>
#21 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 = 0x555555759b60, set = 0x555555763f38, smtp_set =
0x555555763ec8, session = 0x555555759b88, session_time_msecs = 0,
delivery_time_started = {
             tv_sec = 1570437587, tv_usec = 677065}, dup_db =
0x55555578e060, session_id = 0x0, src_mail = 0x55555578f8a8, mail_from =
0x555555759ba0, 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 = 0x555555759bd0, rcpt_params = {orcpt =
{addr_type = 0x0,
               addr = 0x555555759bd0, addr_raw = 0x0}, notify =
SMTP_PARAM_RCPT_NOTIFY_UNSPECIFIED, extra_params = {arr = {buffer = 0x0,
element_size = 0}, v = 0x0,
               v_modifiable = 0x0}}, rcpt_user = 0x555555776b28,
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 = 0x555555759ba0
         storage_service = 0x5555557625e8
         service_user = 0x555555763058
         service_input = {parent_event = 0x0, module = 0x55555555763b
"lda", service = 0x55555555763b "lda", username = 0x7ffff7832f31
"[hidden email]",
           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. 07. 10:17, Demonhost via dovecot wrote:

> Hi Stephan,
>
> Here it is:
>
> Program received signal SIGSEGV, Segmentation fault.
> p_strdup (pool=pool@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@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@entry=0x55555579bc20, dest=dest@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
> "[hidden email]",
>           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@xxxxxxxx -d test@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@xxxxxxxxx: No such file or directory.
>>>>> Reading symbols from /usr/libexec/dovecot/dovecot-lda...(no
>>>>> debugging symbols found)...done.
>>>>> //root@xxxxxxxx: No such file or directory.
>>>>> (gdb) r -f root@xxxxxxxx -d test@xxxxxxxxx < message
>>>>> Starting program: /usr/libexec/dovecot/dovecot-lda -f
>>>>> root@xxxxxxxx -d test@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=<[hidden email]>,
>>>>>>> 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=<[hidden email]>,
>>>>>>> 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 "[hidden email]";
>>>>>>> }
>>>>>>>
>>>>>>> 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.
>>>>>>
>>>>
>>
Reply | Threaded
Open this post in threaded view
|

Re: Sieve redirect is broken in 2.3.7.2 - signal 11

Dovecot mailing list
In reply to this post by Dovecot mailing list


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@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@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@entry=0x55555579bc20, dest=dest@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
> "[hidden email]",
>           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@xxxxxxxx -d test@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@xxxxxxxxx: No such file or directory.
>>>>> Reading symbols from /usr/libexec/dovecot/dovecot-lda...(no
>>>>> debugging symbols found)...done.
>>>>> //root@xxxxxxxx: No such file or directory.
>>>>> (gdb) r -f root@xxxxxxxx -d test@xxxxxxxxx < message
>>>>> Starting program: /usr/libexec/dovecot/dovecot-lda -f
>>>>> root@xxxxxxxx -d test@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=<[hidden email]>,
>>>>>>> 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=<[hidden email]>,
>>>>>>> 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 "[hidden email]";
>>>>>>> }
>>>>>>>
>>>>>>> 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.
>>>>>>
>>>>
>>

Reply | Threaded
Open this post in threaded view
|

Re: Sieve redirect is broken in 2.3.7.2 - signal 11

Dovecot mailing list
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@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@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@entry=0x55555579bc20, dest=dest@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
>> "[hidden email]",
>>           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@xxxxxxxx -d test@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@xxxxxxxxx: No such file or directory.
>>>>>> Reading symbols from /usr/libexec/dovecot/dovecot-lda...(no
>>>>>> debugging symbols found)...done.
>>>>>> //root@xxxxxxxx: No such file or directory.
>>>>>> (gdb) r -f root@xxxxxxxx -d test@xxxxxxxxx < message
>>>>>> Starting program: /usr/libexec/dovecot/dovecot-lda -f
>>>>>> root@xxxxxxxx -d test@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=<[hidden email]>,
>>>>>>>> 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=<[hidden email]>,
>>>>>>>> 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 "[hidden email]";
>>>>>>>> }
>>>>>>>>
>>>>>>>> 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.
>>>>>>>
>>>>>
>>>
>
Reply | Threaded
Open this post in threaded view
|

Re: Sieve redirect is broken in 2.3.7.2 - signal 11

Dovecot mailing list
Thank you Stephan ! That was it.

It works fine with the proper pigeonhole version.

Let me write to the package maintainer to fix.

Regards,
   Laszlo

On 2019. 10. 07. 11:09, Demonhost wrote:

> 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@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@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@entry=0x55555579bc20, dest=dest@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
>>> "[hidden email]",
>>>           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@xxxxxxxx -d test@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@xxxxxxxxx: No such file or directory.
>>>>>>> Reading symbols from /usr/libexec/dovecot/dovecot-lda...(no
>>>>>>> debugging symbols found)...done.
>>>>>>> //root@xxxxxxxx: No such file or directory.
>>>>>>> (gdb) r -f root@xxxxxxxx -d test@xxxxxxxxx < message
>>>>>>> Starting program: /usr/libexec/dovecot/dovecot-lda -f
>>>>>>> root@xxxxxxxx -d test@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=<[hidden email]>,
>>>>>>>>> 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=<[hidden email]>,
>>>>>>>>> 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 "[hidden email]";
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> 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.
>>>>>>>>
>>>>>>
>>>>
>>