[Dovecot] managesieve segfault with gold linker

Eray Aslan eray.aslan at caf.com.tr
Thu Jul 12 23:27:18 EEST 2012


dovecot-2.1.8 sieve-0.3.1 binutils-2.22

When dovecot and sieve is linked with ld.gold I get a segfault in
checkscript command:

$ telnet localhost 4190
[some output]
authenticate "PLAIN" "<base64_username_password>"
[some more output]
checkscript "foobarscript"
connection closed

Logs:
2012-07-12T19:30:23.624158+00:00 bob dovecot: master: Dovecot v2.1.8
starting up
2012-07-12T19:31:22.548913+00:00 bob dovecot: managesieve-login: Login:
user=<username>, method=PLAIN, rip=192.168.122.1, lip=192.168.122.64,
mpid=12169, session=<YGo2AqfEcwDAqHoB>
2012-07-12T19:31:34.636747+00:00 bob dovecot: managesieve(username):
Fatal: master: service(managesieve): child 12169 killed with signal 11
(core dumped)

make check also fails (thank you for that):
[...]
Test case: ./tests/execute/errors.svtest:

 1: Test 'Action conflicts: reject <-> fileinto' SUCCEEDED
 2: Test 'Action conflicts: reject <-> keep' SUCCEEDED
 3: Test 'Action conflicts: reject <-> redirect' SUCCEEDED
 4: Test 'Action limit' SUCCEEDED
 5: Test 'Redirect limit' SUCCEEDED
/tmp/work/dovecot-2.1-pigeonhole-0.3.1/src/testsuite/.libs/lt-testsuite:
symbol lookup error:
/tmp/work/dovecot-2.1-pigeonhole-0.3.1/src/lib-sieve/.libs/libdovecot-sieve.so.0:
undefined symbol: mail_deliver_get_log_var_expand_table
make: *** [tests/execute/errors.svtest] Error 127

Backtrace is attached.

-- 
Eray Aslan <eras at gentoo.org>
-------------- next part --------------
[New LWP 12169]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `dovecot/managesieve'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007f9e154a2aa6 in ?? () from /lib64/libc.so.6
#0  0x00007f9e154a2aa6 in ?? () from /lib64/libc.so.6
No symbol table info available.
#1  0x000000000040b353 in sieve_storage_save_will_activate (ctx=0x17ee170) at sieve-storage-save.c:329
        _data_stack_cur_id = 5
        scriptname = 0x17b8356 "foobarscript.sieve"
        ret = <optimized out>
#2  0x0000000000406170 in cmd_putscript_finish_parsing (cmd=0x17e4c88) at cmd-putscript.c:206
        ehandler = <optimized out>
        cpflags = 3
        sbin = <optimized out>
        errors = <optimized out>
        _data_stack_cur_id = 4
        script = 0x17ef180
        success = true
        client = 0x17e4bf0
        ctx = 0x17e7150
        args = 0x17c3c28
        ret = <optimized out>
#3  0x0000000000406407 in cmd_putscript_continue_script (cmd=0x17e4c88) at cmd-putscript.c:423
        failed = <optimized out>
        all_written = <optimized out>
        client = 0x17e4bf0
        ctx = 0x17e7150
        size = 18446744073709551615
        ret = <optimized out>
#4  0x0000000000406837 in cmd_putscript_continue_parsing (cmd=0x17e4c88) at cmd-putscript.c:332
        client = 0x17e4bf0
        ctx = 0x17e7150
        args = 0x17c3c28
        ret = <optimized out>
#5  0x0000000000408597 in client_handle_input (cmd=0x17e4c88) at managesieve-client.c:546
        client = 0x17e4bf0
        __FUNCTION__ = "client_handle_input"
#6  0x000000000040863f in client_handle_input (cmd=0x17e4c88) at managesieve-client.c:598
        client = 0x17e4bf0
        __FUNCTION__ = "client_handle_input"
#7  0x00000000004087da in client_input (client=0x17e4bf0) at managesieve-client.c:639
        _data_stack_cur_id = 3
        cmd = 0x17e4c88
        ret = <optimized out>
#8  0x00007f9e157cfd16 in io_loop_call_io (io=0x17e4fc0) at ioloop.c:379
        ioloop = 0x17c0680
        t_id = 2
#9  0x00007f9e157d0a37 in io_loop_handler_run (ioloop=<optimized out>) at ioloop-epoll.c:213
        ctx = 0x17c09f0
        events = 0x0
        event = 0x17c0a60
        list = 0x17dba30
        io = <optimized out>
        tv = {tv_sec = 1799, tv_usec = 999667}
        msecs = <optimized out>
        ret = 1
        i = <optimized out>
        call = <optimized out>
#10 0x00007f9e157cf728 in io_loop_run (ioloop=0x17c0680) at ioloop.c:398
No locals.
#11 0x00007f9e157bbc43 in master_service_run (service=0x17c0530, callback=<optimized out>) at master-service.c:543
No locals.
#12 0x00000000004094f5 in main (argc=1, argv=0x17c0370) at main.c:315
        set_roots = {0x412b20, 0x0}
        login_set = {auth_socket_path = 0x17b8088 "/var/run/dovecot/auth-master", postlogin_socket_path = 0x0, postlogin_timeout_secs = 60, callback = 0x408fc0 <login_client_connected>, failure_callback = 0x408f70 <login_client_failed>}
        service_flags = <optimized out>
        storage_service_flags = <optimized out>
        username = <optimized out>
        c = <optimized out>


More information about the dovecot mailing list