In data mercoledì 19 settembre 2018 09:30:47 CEST, Timo Sirainen ha scritto:
> On 18 Sep 2018, at 15.15, Simone Lazzaris <s.lazzaris@interactive.eu> wrote:
> > I've got a core dump, and here is the backtrace. Let me know if you want
> > the core file.
> It would be useful if we're able to use it. Could you use
> https://dovecot.org/tools/core-tar.sh
> <https://dovecot.org/tools/core-tar.sh> to send the core and the related
> binaries (e.g. just email to me)? The usage is explained at the beginning
> of the script. At least in theory we could then debug with the core file,
> although I've had some trouble even then.
>
> But just in case the core doesn't work, could you also do:
>
> bt full
> fr 8
> p *((struct doveadm_connection *)io->context)
> p *((struct doveadm_connection *)io->context)->input
I'm sending you the tarball created with core-tar; and just in case:
root@imap-front4:/usr/local/src/dovecot-2.2.36# gdb ./src/director/.libs/director /var/tmp/core.10733
GNU gdb (GDB) 7.4.1-debian
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 "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/local/src/dovecot-2.2.36/src/director/.libs/director...done.
[New LWP 10733]
warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
Core was generated by `dovecot/director'.
Program terminated with signal 6, Aborted.
#0 0xb76e4428 in __kernel_vsyscall ()
(gdb) bt full
#0 0xb76e4428 in __kernel_vsyscall ()
No symbol table info available.
#1 0xb74636c1 in raise () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
No symbol table info available.
#2 0xb7466af2 in abort () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
No symbol table info available.
#3 0xb76485ae in default_fatal_finish (type=<optimized out>, status=status@entry=0) at failures.c:201
backtrace = 0x82b5168 "/usr/local/lib/dovecot/libdovecot.so.0(+0xa15be) [0xb76485be] -> /usr/local/lib/dovecot/libdovecot.so.0(+0xa1641) [0xb7648641] -> /usr/local/lib/dovecot/libdovecot.so.0(i_fatal+0) [0xb75ce35e] -> dove"...
#4 0xb7648641 in i_internal_fatal_handler (ctx=0xbf839cc0, format=0x805c274 "file %s: line %d (%s): assertion failed: (%s)", args=0xbf839ce4 "4\370\005\bI\004") at failures.c:670
status = 0
#5 0xb75ce35e in i_panic (format=format@entry=0x805c274 "file %s: line %d (%s): assertion failed: (%s)") at failures.c:275
ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0, timestamp_usecs = 0}
args = 0xbf839ce4 "4\370\005\bI\004"
#6 0x080574f7 in doveadm_connection_deinit (_conn=_conn@entry=0xbf839d60) at doveadm-connection.c:1097
conn = 0x82fb580
__FUNCTION__ = "doveadm_connection_deinit"
#7 0x08057f03 in doveadm_connection_input (conn=0x0) at doveadm-connection.c:1051
line = <optimized out>
ret = <optimized out>
#8 0xb76613db in io_loop_call_io (io=0x82fb780) at ioloop.c:600
ioloop = 0x82bd648
t_id = 2
__FUNCTION__ = "io_loop_call_io"
#9 0xb7662e1e in io_loop_handler_run_internal (ioloop=ioloop@entry=0x82bd648) at ioloop-epoll.c:223
ctx = 0x82c9a40
events = 0x0
event = 0x82c9a80
list = 0x82e1830
io = <optimized out>
tv = {tv_sec = 0, tv_usec = 236182}
events_count = 0
msecs = <optimized out>
ret = 1
i = <optimized out>
j = <optimized out>
call = <optimized out>
__FUNCTION__ = "io_loop_handler_run_internal"
#10 0xb7661496 in io_loop_handler_run (ioloop=ioloop@entry=0x82bd648) at ioloop.c:649
No locals.
#11 0xb7661658 in io_loop_run (ioloop=0x82bd648) at ioloop.c:624
__FUNCTION__ = "io_loop_run"
#12 0xb75da45e in master_service_run (service=0x82bd578, callback=callback@entry=0x804d360 <client_connected>) at master-service.c:719
No locals.
#13 0x0804cf5e in main (argc=1, argv=0x82bd300) at main.c:366
set_roots = {0x805f6c0, 0x0}
test_port = 0
error = <optimized out>
debug = false
c = <optimized out>
(gdb) fr 8
#8 0xb76613db in io_loop_call_io (io=0x82fb780) at ioloop.c:600
600 io->callback(io->context);
(gdb) p *((struct doveadm_connection *)io->context)
$1 = {prev = 0x0, next = 0x0, fd = 21, io = 0x0, input = 0x82fc478, output = 0x82fc598, dir = 0x82c20a8, to_ring_sync_abort = 0x82e8de0, reset_cmd = 0x0, kick_cmd = 0x0,
ring_sync_callback = 0x80570d0 <doveadm_connection_ret_ok>, cmd_pending_args = 0x0, cmd_pending_idx = 0, handshaked = 1}
(gdb) p *((struct doveadm_connection *)io->context)->input
$2 = {v_offset = 51, stream_errno = 0, mmaped = 0, blocking = 0, closed = 0, readable_fd = 1, seekable = 0, eof = 1, real_stream = 0x82fc440}
(gdb) quit
--
Simone Lazzaris
Responsabile datacenter
Qcom S.p.A.
Via Roggia Vignola, 9 | 24047 Treviglio (BG)
T +39036347905 | D +3903631970352| M +393938111237
simone.lazzaris@qcom.it | www.qcom.it
Qcom Official Pages LinkedIn | Facebook