[Dovecot] fts_lucene crashing

Joe Beaubien joe.beaubien at gmail.com
Wed May 30 22:13:52 EEST 2012


Thanks for the new release. Unfortunately, it doesn't seem to have fixed my
specific issue. I got you a gdb trace like you asked in a previous mail. I
hope that can help. If I didn't get the correct backtrace, or if you need
some other info from gdb let me know.

Setup info:
  - ubuntu 12.04 LTS
  - dovecot 2.1.7
      - imap, mdbox, zlib, fts_lucene
      - pigeonsieve 0.3.0
      - lmtp
  - fetching the mails from outside our network with fetchmail and
delivering them locally to postfix which then forwards them to dovecot-lmtp


Thanks,

-Joe

Here is the error in the logs:
May 30 15:05:38 XXX dovecot: imap(formulaire): Fatal: master:
service(imap): child 19433 killed with signal 6 (core dumped)
May 30 15:05:40 XXX dovecot: imap(formulaire): Panic: file
lucene-wrapper.cc: line 196: unreached
May 30 15:05:40 XXX dovecot: imap(formulaire): Error: Raw backtrace:
/opt/dovecot-2.1.7/lib/dovecot/libdovecot.so.0(+0x4203a) [0x7f158213c03a]
-> /opt/dovecot-2.1.7/lib/dovecot/libdovecot.so.0(+0x4207e)
[0x7f158213c07e] ->
/opt/dovecot-2.1.7/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f15821133f0]
-> /opt/dovecot/lib/dovecot/lib21_fts_lucene_plugin.so(+0x850e)
[0x7f15808b950e] ->
/opt/dovecot/lib/dovecot/lib21_fts_lucene_plugin.so(+0xa7be)
[0x7f15808bb7be] ->
/opt/dovecot/lib/dovecot/lib21_fts_lucene_plugin.so(+0xa952)
[0x7f15808bb952] ->
/opt/dovecot/lib/dovecot/lib21_fts_lucene_plugin.so(lucene_index_lookup+0x7b)
[0x7f15808bbe0b] ->
/opt/dovecot/lib/dovecot/lib21_fts_lucene_plugin.so(+0x73a7)
[0x7f15808b83a7] ->
/opt/dovecot/lib/dovecot/lib20_fts_plugin.so(fts_backend_lookup+0x63)
[0x7f1580ccdce3] -> /opt/dovecot/lib/dovecot/lib20_fts_plugin.so(+0xa32d)
[0x7f1580cd132d] ->
/opt/dovecot/lib/dovecot/lib20_fts_plugin.so(fts_search_lookup+0xa6)
[0x7f1580cd1a26] -> /opt/dovecot/lib/dovecot/lib20_fts_plugin.so(+0xba25)
[0x7f1580cd2a25] ->
/opt/dovecot-2.1.7/lib/dovecot/libdovecot-storage.so.0(mailbox_search_next_nonblock+0x27)
[0x7f1582400ad7] -> dovecot/imap() [0x415897] -> dovecot/imap() [0x415c52]
->
/opt/dovecot-2.1.7/lib/dovecot/libdovecot.so.0(io_loop_handle_timeouts+0xc4)
[0x7f1582148d04] ->
/opt/dovecot-2.1.7/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x5b)
[0x7f1582149c5b] ->
/opt/dovecot-2.1.7/lib/dovecot/libdovecot.so.0(io_loop_run+0x28)
[0x7f15821489c8] ->
/opt/dovecot-2.1.7/lib/dovecot/libdovecot.so.0(master_service_run+0x13)
[0x7f1582135263] -> dovecot/imap(main+0x285) [0x4086d5] ->
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f1581d5e76d] ->
dovecot/imap() [0x40884d]



Here is the gdb backtrace (bt full):
-----------------------------------------------------------------------------------------------------------------------------
joe at mba:/home/formulaire$ sudo gdb /opt/dovecot/libexec/dovecot/imap ./core
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2) 7.4-2012.04
Copyright (C) 2012 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-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /opt/dovecot-2.1.7/libexec/dovecot/imap...done.
[New LWP 19429]

warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `dovecot/imap'.
Program terminated with signal 6, Aborted.
#0  0x00007fe7ad124445 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb)
(gdb)
(gdb)
(gdb) bt full
#0  0x00007fe7ad124445 in raise () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#1  0x00007fe7ad127bab in abort () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#2  0x00007fe7ad4ed048 in default_fatal_finish (type=<optimized out>,
status=0) at failures.c:191
        backtrace = 0x1626ba0
"/opt/dovecot-2.1.7/lib/dovecot/libdovecot.so.0(+0x4203a) [0x7fe7ad4ed03a]
-> /opt/dovecot-2.1.7/lib/dovecot/libdovecot.so.0(+0x4207e)
[0x7fe7ad4ed07e] -> /opt/dovecot-2.1.7/lib/dovecot/libdovecot.so.0"...
#3  0x00007fe7ad4ed07e in i_internal_fatal_handler (ctx=0x7fff42307c20,
format=<optimized out>, args=<optimized out>) at failures.c:649
        status = 0
#4  0x00007fe7ad4c43f0 in i_panic (format=<optimized out>) at failures.c:263
        ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0}
        args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area =
0x7fff42307cf0, reg_save_area = 0x7fff42307c30}}
#5  0x00007fe7abc6a50e in t_lucene_utf8_to_tchar (index=0x1654890,
    str=0x166cbd0 "Madame, Monsieur\n\nNous accusons r\351ception de votre
courriel. Malheureusement, vous ne pouvez pas vous qualifier pour
\351migrer au Canada dans le programme des travailleurs qualifi\351s. La
s\351lection des ca"..., translate=<optimized out>) at lucene-wrapper.cc:196
        dest_arr = {arr = {buffer = 0x1625350, element_size = 4}, v =
0x1625350, v_modifiable = 0x1625350}
        chars = <optimized out>
        ret = <optimized out>
        len = <optimized out>
#6  0x00007fe7abc6c7be in lucene_get_query_str (fuzzy=false, str=<optimized
out>, key=0x7fe7abc6dd24 L"body", index=0x1654890) at lucene-wrapper.cc:1042
        wvalue = <optimized out>
        analyzer = <optimized out>
#7  lucene_get_query (index=0x1654890, key=0x7fe7abc6dd24 L"body",
arg=<optimized out>) at lucene-wrapper.cc:1054
No locals.
#8  0x00007fe7abc6c952 in lucene_add_definite_query (index=0x1654890,
queries=..., arg=0x166c548, and_args=true) at lucene-wrapper.cc:1087
        q = <optimized out>
        lq = 0x1654890
#9  0x00007fe7abc6ce0b in lucene_index_lookup (index=0x1654890,
args=0x166c400, and_args=true, result=0x7fff42307ec0) at
lucene-wrapper.cc:1264
        have_definites = <optimized out>
        maybe_queries = {arr = {buffer = 0x3030303037303664, element_size =
4050531783168503863}, v = 0x3030303037303664, v_modifiable =
0x3030303037303664}
        arg = 0x166c548
        def_queries = {arr = {buffer = 0x16250d0, element_size = 16}, v =
0x16250d0, v_modifiable = 0x16250d0}
        have_maybies = <optimized out>
#10 0x00007fe7abc693a7 in fts_backend_lucene_lookup (_backend=0x1654750,
box=<optimized out>, args=0x166c400, and_args=true, result=0x7fff42307ec0)
    at fts-backend-lucene.c:465
        _data_stack_cur_id = 4
        backend = 0x1654750
        ret = <optimized out>
#11 0x00007fe7ac07ece3 in fts_backend_lookup (backend=0x1654750,
box=0x165d220, args=0x166c400, and_args=true, result=0x7fff42307ec0) at
fts-api.c:306
No locals.
#12 0x00007fe7ac08232d in fts_search_lookup_level_single (and_args=true,
args=0x166c400, fctx=0x166dfa0) at fts-search.c:46
        level = 0x1
        result = {box = 0x0, definite_uids = {arr = {buffer = 0x166e050,
element_size = 8}, v = 0x166e050, v_modifiable = 0x166e050}, maybe_uids =
{arr = {
              buffer = 0x166e188, element_size = 8}, v = 0x166e188,
v_modifiable = 0x166e188}, scores = {arr = {buffer = 0x166e2c0,
element_size = 8}, v = 0x166e2c0,
            v_modifiable = 0x166e2c0}, scores_sorted = false}
#13 fts_search_lookup_level (fctx=0x166dfa0, args=0x166c400, and_args=true)
at fts-search.c:203
No locals.
#14 0x00007fe7ac082a26 in fts_search_lookup (fctx=0x166dfa0) at
fts-search.c:350
        last_uid = 1768195
        seq1 = 0
        seq2 = 0
        __FUNCTION__ = "fts_search_lookup"
#15 0x00007fe7ac083a25 in fts_mailbox_build_continue (ctx=0x166dd50) at
fts-storage.c:218
        fctx = 0x166dfa0
---Type <return> to continue, or q <return> to quit---
        error = <optimized out>
        ret = <optimized out>
#16 fts_mailbox_search_next_nonblock (ctx=0x166dd50, mail_r=0x7fff42308070,
tryagain_r=0x7fff4230807f) at fts-storage.c:242
        fbox = 0x165d778
        fctx = 0x166dfa0
#17 0x00007fe7ad7b1ad7 in mailbox_search_next_nonblock (ctx=0x166dd50,
mail_r=0x7fff42308070, tryagain_r=<optimized out>) at mail-storage.c:1433
        box = <optimized out>
#18 0x0000000000415897 in cmd_search_more (cmd=0x16581f0) at
imap-search.c:402
        ctx = 0x166aa80
        opts = SEARCH_RETURN_ALL
        mail = 0x0
        sync_flags = <optimized out>
        end_time = {tv_sec = 19, tv_usec = 0}
        range = 0x6
        count = <optimized out>
        id = <optimized out>
        id_min = 0
        id_max = 0
        ok_reply = <optimized out>
        time_msecs = <optimized out>
        tryagain = <optimized out>
        lost_data = <optimized out>
        __FUNCTION__ = "cmd_search_more"
#19 0x0000000000415c52 in cmd_search_more_callback (cmd=0x16581f0) at
imap-search.c:487
        client = 0x1657650
        finished = <optimized out>
#20 0x00007fe7ad4f9d04 in io_loop_handle_timeouts_real (ioloop=0x162d680)
at ioloop.c:354
        timeout = 0x167ea50
        item = 0x167ea50
        tv = {tv_sec = 0, tv_usec = 0}
        tv_call = {tv_sec = 1338404736, tv_usec = 680919}
        t_id = 3
#21 io_loop_handle_timeouts (ioloop=0x162d680) at ioloop.c:367
        _data_stack_cur_id = 2
#22 0x00007fe7ad4fac5b in io_loop_handler_run (ioloop=0x162d680) at
ioloop-epoll.c:186
        ctx = 0x162da10
        events = 0x0
        event = 0x0
        list = <optimized out>
        io = <optimized out>
        tv = {tv_sec = 0, tv_usec = 0}
        msecs = 0
        ret = 0
        i = <optimized out>
        call = <optimized out>
#23 0x00007fe7ad4f99c8 in io_loop_run (ioloop=0x162d680) at ioloop.c:398
No locals.
#24 0x00007fe7ad4e6263 in master_service_run (service=0x162d530,
callback=<optimized out>) at master-service.c:544
No locals.
#25 0x00000000004086d5 in main (argc=1, argv=0x162d370) at main.c:389
        set_roots = {0x41b600, 0x0}
        login_set = {auth_socket_path = 0x1625088
"/opt/dovecot-2.1.7/var/run/dovecot/auth-master", postlogin_socket_path =
0x0, postlogin_timeout_secs = 60,
          callback = 0x418720 <login_client_connected>, failure_callback =
0x418480 <login_client_failed>}
        service_flags = <optimized out>
---Type <return> to continue, or q <return> to quit---
        storage_service_flags = <optimized out>
        username = <optimized out>
        c = <optimized out>
(gdb)
(gdb)
(gdb)





On Mon, May 28, 2012 at 5:19 PM, Joe Beaubien <joe.beaubien at gmail.com>wrote:

> I can't seem to find the time to setup an environment to test this.
>
> Will it make it to the next release? For 'political' reasons, it's easier
> for me to dist a new official release than a code patch.
>
> -Joe
>
>
> On Fri, May 25, 2012 at 5:22 PM, Joe Beaubien <joe.beaubien at gmail.com>wrote:
>
>> Great thanks. I will try it out as soon as I can.
>>
>>
>>
>> On Tue, May 22, 2012 at 5:25 PM, Timo Sirainen <tss at iki.fi> wrote:
>>
>>> On 22.5.2012, at 22.44, Joe Beaubien wrote:
>>>
>>> > I found this in mail.err. Anyone ever experience this?
>>> >
>>> > May 22 14:51:51 mba dovecot: imap(formulaire): Panic: file
>>> > lucene-wrapper.cc: line 196: unreached
>>>
>>> Some search key (sent by client) wasn't valid UTF-8. I found one way of
>>> how it could happen, this fixes it:
>>> http://hg.dovecot.org/dovecot-2.1/rev/03ea2388bb27
>>>
>>> If the crash still happens even after that, a gdb backtrace would be
>>> helpful: http://dovecot.org/bugreport.html
>>>
>>>
>>
>


More information about the dovecot mailing list