[Dovecot] stale imap processes with 1.0.rc6 on FreeBSD
Jeremy C. Reed
reed at reedmedia.net
Fri Aug 11 07:44:34 EEST 2006
> > There are many more "imap" processes without any network connection
> > though.
>
> These are the important processes then. What do ktrace and gdb
> backtraces show for them?
Okay, here is one that no longer has an network connection:
(gdb) bt full
#0 0x2811d590 in ?? ()
No symbol table info available.
#1 0x80a9230 in ?? ()
No symbol table info available.
#2 0x80a8915 in ?? ()
No symbol table info available.
#3 0x806104d in _fini ()
No symbol table info available.
#4 0x8055ac9 in i_stream_create_file (fd=-1077937284, pool=0x0,
max_buffer_size=3217030017, autoclose_fd=-1077937263) at
istream-file.c:236
pool = 0x0
max_buffer_size = 135102512
fstream = (struct file_istream *) 0x80ca560
st = {st_dev = 3217029756, st_ino = 3217029664, st_mode = 4159,
st_nlink = 2054, st_uid = 3217029740, st_gid = 671912909,
st_rdev = 3217029740, st_atimespec = {tv_sec = 134568649, tv_nsec = 1},
st_mtimespec = {tv_sec = -1077937548, tv_nsec = -1077937540},
st_ctimespec = {tv_sec = 647, tv_nsec = -1077937556},
st_size = 577967886526927274, st_blocks = 134943496, st_blksize = 0,
st_flags = 0, st_gen = 3217029736, st_lspare = 0, st_qspare = {
-4629706567330037760, 2885872453060393580}}
Nothing for ktrace though. With ktracing enabled, next time doing gdb did
add details (but maybe not related):
99399 imap PSIG SIGINT caught handler=0x80a92ec mask=0x0 code=0x0
99399 imap RET kevent -1 errno 4 Interrupted system call
99399 imap CALL write(0x6,0xbfbff7a3,0x1)
99399 imap GIO fd 6 wrote 1 byte
"\^B"
99399 imap RET write 1
99399 imap CALL sigreturn(0xbfbff7c0)
99399 imap RET sigreturn JUSTRETURN
99399 imap CALL write(0x2,0x80cb1e0,0x2b)
99399 imap GIO fd 2 wrote 43 bytes
"\^AFkevent() failed: Interrupted system call
"
99399 imap RET write 43/0x2b
99399 imap CALL sigprocmask(0x1,0x280d9be0,0xbfbff8a0)
99399 imap RET sigprocmask 0
99399 imap CALL sigprocmask(0x3,0x280d9bf0,0)
99399 imap RET sigprocmask 0
99399 imap CALL exit(0x59)
> Can you see if file descriptors still exist for the sockets? In Linux
> I'd do that with ls -l /proc/pid/fd/
Yes, they do. fstat shows the "internet stream tcp" for them with file
descriptor 0 and 1. The ones that still have a network connection also
display the address of the socket, like:
USER CMD PID FD MOUNT INUM MODE SZ|DV R/W
user imap 4711 0* internet stream tcp d5fcd640
user imap 4711 1* internet stream tcp d5fcd640
user imap 99399 0* internet stream tcp
user imap 99399 1* internet stream tcp
More information about the dovecot
mailing list