[Dovecot] dovecot 1.2 and logging start failures

Michal Hlavinka mhlavink at redhat.com
Mon Sep 7 13:01:36 EEST 2009


On Monday 07 September 2009 04:18:06 Timo Sirainen wrote:
> On Tue, 2009-09-01 at 16:57 +0200, Michal Hlavinka wrote:
> > Would it be possible to use syslog for error output sooner or there are
> > any cons?
> 
> http://hg.dovecot.org/dovecot-1.2/rev/eb4ea59e4657
> 

Thanks for looking at this!

Unfortunately this does not work

backtrace:
(gdb) bt
#0  0x00000034bca489d7 in _IO_vfprintf_internal (s=0x7fffffffe020, format=<value 
optimized out>, ap=0x7fffffffe350) at vfprintf.c:1580
#1  0x00000034bca6f232 in _IO_vsnprintf (string=0x63f718 "listen(", 
maxlen=<value optimized out>, format=0x63f6e8 "listen(%s, %d) failed: Address 
already in use", args=0x7fffffffe350)
    at vsnprintf.c:120
#2  0x000000000042605c in t_noalloc_strdup_vprintf (format=0x63f6e8 
"listen(%s, %d) failed: Address already in use", args=0x7fffffffe350, 
size_r=0x7fffffffe22c) at strfuncs.c:120
#3  0x0000000000426152 in p_strdup_vprintf (pool=0x63c780, format=0x42bd69 
"listen(%s, %d) failed: %m", args=0x7fffffffe350) at strfuncs.c:139
#4  0x00000000004266c2 in t_strdup_vprintf (format=0x42bd69 "listen(%s, %d) 
failed: %m", args=0x7fffffffe350) at strfuncs.c:254
#5  0x00000000004171c6 in syslog_handler (level=2, type=LOG_TYPE_FATAL, 
format=0x42bd69 "listen(%s, %d) failed: %m", args=0x7fffffffe350) at 
failures.c:298
#6  0x0000000000417274 in i_syslog_fatal_handler (type=LOG_TYPE_FATAL, 
status=89, fmt=0x42bd69 "listen(%s, %d) failed: %m", args=0x7fffffffe350) at 
failures.c:311
#7  0x000000000040d783 in tee_fatal_handler (type=LOG_TYPE_FATAL, status=89, 
fmt=0x42bd69 "listen(%s, %d) failed: %m", args=0x7fffffffe350) at main.c:152
#8  0x0000000000416d87 in i_fatal (format=0x42bd69 "listen(%s, %d) failed: 
%m") at failures.c:216
#9  0x0000000000407616 in listener_array_listen_missing (proto=0x42bc64 
"imap", listens_arr=0x647720, retry=false) at listener.c:335
#10 0x000000000040769d in listener_listen_missing (set=0x6474d8, 
proto=0x42bc64 "imap", retry=false) at listener.c:346
#11 0x00000000004077e1 in listeners_open_fds (old_set=0x0, retry=false) at 
listener.c:371
#12 0x000000000040e50c in main (argc=1, argv=0x7fffffffe658) at main.c:649


reproducer:

listen for ipv4 and ipv6 connections on system, where ipv6 is disabled, start 
dovecot:

Fatal: listen(::, 143) failed: Address already in use

Program received signal SIGSEGV, Segmentation fault.

Cheers,
Michal
-------------- next part --------------
(gdb) bt full
#0  0x00000034bca489d7 in _IO_vfprintf_internal (s=0x7fffffffe020, format=<value optimized out>, ap=0x7fffffffe350) at vfprintf.c:1580
        len = <value optimized out>
        string_malloced = <value optimized out>
        step0_jumps = {0, 3491, 3570, 6406, 6492, 2736, 2829, 5759, 3764, 3946, 4175, 1491, 1570, 1659, 1889, 1936, 3749, 3086, 5665, 5090, 6168, -557, 4254, 4343, 6127, -2814, 5387, 1748,
          1817, 5680}
        step3b_jumps = {0 <repeats 11 times>, 1570, 0, 0, 1889, 1936, 3749, 3086, 5665, 5090, 6168, -557, 4254, 4343, 6127, -2814, 5387, 0, 0, 0}
        is_negative = <value optimized out>
        alt = 0
        space = 0
        is_long_double = 0
        step2_jumps = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4175, 1491, 1570, 1659, 1889, 1936, 3749, 3086, 5665, 5090, 6168, -557, 4254, 4343, 6127, -2814, 5387, 1748, 1817, 0}
        the_arg = {pa_wchar = -1130298040 L'H', pa_int = -1130298040, pa_long_int = 226502968648, pa_long_long_int = 226502968648, pa_u_int = 3164669256, pa_u_long_int = 226502968648,
          pa_u_long_long_int = 226502968648, pa_double = 1.1190733549003374e-312, pa_long_double = <invalid float value>, pa_string = 0x34bca10548 "",
          pa_wstring = 0x34bca10548 L"\15130273400\31064564\13723644537\14334663166\31467141\15134657537\15431262147\35062563\13723644537\16335062547\15532272000\14431471145\16431271537\14533264564\14627657400\15135071157\14627674546\33064541\16035062547\16233664562\36272151\13723644537\14631262167\16433072541\16034674137\33472165\15034066141\16233671541\14532000164\16233671162\15733061400\14500065543\16433462566\16700062146\14631071157\31262562\16035671566\16433464562\13727600146\16434661157\13732661541\15134470166\13731472156\32664143\16434472163\14133264557\13727600170\16034671551\13731261541\11127600154\14534657517\15535665545\32671141\16431271537\34066552\14233257537\16434467163\16330673557\15332061537\16327657400\15531471164\15427667157\16231074000\15430261537\14734666554\16327657400\16235261545\14531657545\16633462564\16431263400\14132266141\16433462563\14531072000\14535062554\16327657400\14431264143\16534061537\15635267543\13727600164\14535467567\15733063162\14436000167\13735257562\14733467554\14733467554\15500072137\15634663563\16230200144\14527675147\14134472170\13700072143\16235071537\13731067564\14535067151\15430267162\15430266400\13730667554\14230271565\16327662554\31275151\16335062547\15530267160\15035062400\15427671145\31267151\15433060555\16427661557\33264562\14531661564\16231670164\16434000160\14131271150\14534657544\15630261564\16433062543\31270171\16331067145\16433462560\16533463400\16631262137\15330266537\16631262145\16330273000\15632271160\15300063164\14527674545\17134461556\14534672160\15732271563\14233200156\16434467163\16330673557\16731271000\31067151\14432061546\13700071151\14732271537\14533271551\16231261155\15035062400\15627671145\13730267564\15130400162\13700062156\16434661157\13732661541\15131662542\14436000156\13735257562\14534074550\14534400162\16434664547\16034471145\15430600143\16027672156\15634471145\14734600157\16034672145\13735067145\15734000162\13736064563\16631060546\6631271551\14335600064\14233267564\15532272000\14431471145\16431263537\14533264564\16333670000\16327674151\15635660560\15432263137\14330257545\15633664564\14531057563\15734472163\16434000171\14131271150\15730657544\14427662156\16235071545\13700074557\13734674563\15434471145\35071551\16335062547\15530267147\15500071137\14133262562\11127600160\15131457517\15727662554\14634462566\35667554\14334472163\33066157\15735057537\16034072567\15427671145"..., pa_pointer = 0x34bca10548, pa_user = 0x34bca10548}
        showsign = 0
        step3a_jumps = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6038, 0, 0, 0, 1889, 1936, 3749, 3086, 5665, 0, 0, 0, 0, 4343, 0, 0, 0, 0, 0, 0}
        step4_jumps = {0 <repeats 14 times>, 1889, 1936, 3749, 3086, 5665, 5090, 6168, -557, 4254, 4343, 6127, -2814, 5387, 0, 0, 0}
        string = 0x3a <Address 0x3a out of bounds>
        width = <value optimized out>
        use_outdigits = 0
        pad = <value optimized out>
        step1_jumps = {0, 0, 0, 0, 0, 0, 0, 0, 0, 3946, 4175, 1491, 1570, 1659, 1889, 1936, 3749, 3086, 5665, 5090, 6168, -557, 4254, 4343, 6127, -2814, 5387, 1748, 1817, 0}
        group = 0
        is_short = 0
        is_long = 0
        is_char = 0
        base = 0
        left = 0
        prec = <value optimized out>
        spec = 115 's'
        _buffer = {__routine = 0x7fffffffe090, __arg = 0x5, __canceltype = 2, __prev = 0x34bc60a25d}
        _avail = 0
        thousands_sep = 0x0
        grouping = 0xffffffffffffffff <Address 0xffffffffffffffff out of bounds>
        done = 7
        f = 0x63f6f0 "s, %d) failed: Address already in use"
        lead_str_end = 0x63f6ef "%s, %d) failed: Address already in use"
        work_buffer = "\30\355\0\0\0\0\0\0\0\0\0\0@\0\70\0\4\200\255\373!\0 \0\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0\0\273\377\377\377\177\0\0.\273\377\377\377\177\0\0\0\333\377\377\377\177\0\0\202\236`\274\64\0\0\0\3\0\0\0\4\0\0\0\260\333\377\377\377\177\0\0P\336\377\377\377\177\0\0\230\265\375\367\377\177\0\0\20\335\377\377\377\177\0\0\5\0\0\0\0\0\0\0\2\0\0\0\0\0\0\0]\242`\274\64\0\0\0\33", '\0' <repeats 15 times>"\320, \60\240\274\64", '\0' <repeats 11 times>"\260, \333\377\377\377\177\0\0\0<\240\274\64", '\0' <repeats 11 times>, "h\230d\0\0\0\0\0\377\3---Type <return> to continue, or q <return> to quit---
77\377\377\377\177\0\0y\342\334\367\377\177\0\0H\5\241\274\64\0\0\0\300k4\0\0\0`\2104\0\0\0\230\5", '\0' <repeats 14 times>, "?d\0\0\0\0\0\240A\246\274\64\0\0\0`\210"...
        workstart = 0x0
        workend = 0x7fffffffded8 "\230\265\375\367\377\177"
        ap_save = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffe440, reg_save_area = 0x7fffffffe370}}
        nspecs_done = <value optimized out>
        save_errno = <value optimized out>
        readonly_format = 0
        jump_table = "\1\0\0\4\0\16\0\6\0\0\a\2\0\3\t\0\5\b\b\b\b\b\b\b\b\b\0\0\0\0\0\0\0\32\0\31\0\23\23\23\0\35\0\0\f\0\0\0\0\0\0\25\0\0\0\0\22\0\r\0\0\0\0\0\0\32\0\24\17\23\23\23\n\17\34\0\v\30\27\21\26\f\0\25\33\20\0\0\22\0\r"
        __PRETTY_FUNCTION__ = "_IO_vfprintf_internal"
#1  0x00000034bca6f232 in _IO_vsnprintf (string=0x63f718 "listen(", maxlen=<value optimized out>, format=0x63f6e8 "listen(%s, %d) failed: Address already in use", args=0x7fffffffe350)
    at vsnprintf.c:120
        sf = {f = {_sbf = {_f = {_flags = -72515583, _IO_read_ptr = 0x63f718 "listen(", _IO_read_end = 0x63f718 "listen(", _IO_read_base = 0x63f718 "listen(",
                _IO_write_base = 0x63f718 "listen(", _IO_write_ptr = 0x63f71f "", _IO_write_end = 0x63f844 "", _IO_buf_base = 0x63f718 "listen(", _IO_buf_end = 0x63f844 "",
                _IO_save_base = 0x0, _IO_backup_base = 0x0, _IO_save_end = 0x0, _markers = 0x0, _chain = 0x0, _fileno = -1130326696, _flags2 = 0, _old_offset = 140737354124064,
                _cur_column = 0, _vtable_offset = 0 '\0', _shortbuf = "", _lock = 0x0, _offset = 140737488347408, _codecvt = 0x0, _wide_data = 0x4033e0, _freeres_list = 0x0,
                _freeres_buf = 0x0, _freeres_size = 0, _mode = -1, _unused2 = "\0\0\0\0L\345`\274\64\0\0\0\1\0\0\0\377\177\0"}, vtable = 0x34bcd67440}, _s = {_allocate_buffer = 0,
              _free_buffer = 0x34bca09558}},
          overflow_buf = "@\341\377\377\377\177\0\0-\1\0\0\0\0\0\0\360\341\377\377\377\177\0\0\65Ia\274\64\0\0\0\30\367c\0\0\0\0\0P\343\377\377\377\177\0\0\350\366c\0\0\0\0\0-\1\0\0\0\0\0"}
        ret = 0
#2  0x000000000042605c in t_noalloc_strdup_vprintf (format=0x63f6e8 "listen(%s, %d) failed: Address already in use", args=0x7fffffffe350, size_r=0x7fffffffe22c) at strfuncs.c:120
        args2 = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffe440, reg_save_area = 0x7fffffffe370}}
        tmp = 0x63f718 "listen("
        init_size = 301
        ret = 32767
        __PRETTY_FUNCTION__ = "t_noalloc_strdup_vprintf"
#3  0x0000000000426152 in p_strdup_vprintf (pool=0x63c780, format=0x42bd69 "listen(%s, %d) failed: %m", args=0x7fffffffe350) at strfuncs.c:139
        tmp = 0x4033e0 "1\355I\211\321^H\211\342H\203\344\360PTI\307\300\60\254B"
        buf = 0x7f00ffffe650 <Address 0x7f00ffffe650 out of bounds>
        size = 0
#4  0x00000000004266c2 in t_strdup_vprintf (format=0x42bd69 "listen(%s, %d) failed: %m", args=0x7fffffffe350) at strfuncs.c:254
No locals.
#5  0x00000000004171c6 in syslog_handler (level=2, type=LOG_TYPE_FATAL, format=0x42bd69 "listen(%s, %d) failed: %m", args=0x7fffffffe350) at failures.c:298
        _data_stack_cur_id = 3
        recursed = 1
#6  0x0000000000417274 in i_syslog_fatal_handler (type=LOG_TYPE_FATAL, status=89, fmt=0x42bd69 "listen(%s, %d) failed: %m", args=0x7fffffffe350) at failures.c:311
No locals.
#7  0x000000000040d783 in tee_fatal_handler (type=LOG_TYPE_FATAL, status=89, fmt=0x42bd69 "listen(%s, %d) failed: %m", args=0x7fffffffe350) at main.c:152
        set = 0x6474d8
#8  0x0000000000416d87 in i_fatal (format=0x42bd69 "listen(%s, %d) failed: %m") at failures.c:216
        args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffe440, reg_save_area = 0x7fffffffe370}}
#9  0x0000000000407616 in listener_array_listen_missing (proto=0x42bc64 "imap", listens_arr=0x647720, retry=false) at listener.c:335
        listens = 0x649920
        i = 1
        j = 0
        count = 2
#10 0x000000000040769d in listener_listen_missing (set=0x6474d8, proto=0x42bc64 "imap", retry=false) at listener.c:346
No locals.
#11 0x00000000004077e1 in listeners_open_fds (old_set=0x0, retry=false) at listener.c:371
        server = 0x647398
#12 0x000000000040e50c in main (argc=1, argv=0x7fffffffe658) at main.c:649
        _data_stack_cur_id = 2
---Type <return> to continue, or q <return> to quit---
        exec_protocol = 0x0
        exec_args = 0x0
        user = 0x7fffffffe93d "root"
        home = 0x7fffffffef41 "/root"
        foreground = false
        ask_key_pass = false
        log_error = false
        dump_config = false
        dump_config_nondefaults = false
        i = 1


More information about the dovecot mailing list