Re: Excessive threads in opendkim-2.2.2 on Solaris 10

From: Gary Mills <mills_at_cc.umanitoba.ca>
Date: Fri, 28 Jan 2011 13:01:23 -0600

On Fri, Jan 28, 2011 at 10:16:48AM -0800, Murray S. Kucherawy wrote:
>
> Are you compiling with "--enable-vbr"? In v2.2.2 and prior, libvbr
> created its own libar instance rather than sharing one with the
> filter, and that would explain how you get to dispatchers running.

Nope, this is what I used:

    #!/bin/sh
    # Built on Solaris 10
    # Requires lib and include symlinks in source files
    
    PATH=/usr/sfw/bin:/opt/SUNWspro/bin:/usr/bin:/usr/ccs/bin:/usr/sbin; export PATH
    
    env CC=cc \
        INSTALL=/usr/ucb/install \
        LDFLAGS="-R/usr/local/BerkeleyDB.4.4/lib:/usr/local/openssl/lib" \
        ./configure \
        --enable-arlib \
        --with-openssl=/usr/local/openssl \
        --with-milter=/usr/local/src/sendmail/sendmail-8.14.4 \
        --with-db=/usr/local/BerkeleyDB.4.4 \
        --with-domainkeys=/usr/local/src/dkim-milter/dk-milter-1.0.2/obj.SunOS.5.10.i86pc
    
    #!/end

I also did a system call and libar library trace on the daemon.
ar_init() is called twice from thread #1. ar_dispatcher() is also
called twice, from threads #2 and #3. Below is the relevant portion
of that trace:

721/1: getcontext(0x08047700)
721/1: getrlimit(RLIMIT_STACK, 0x080476F8) = 0
721/1: getpid() = 721 [720]
721/1: lwp_private(0, 1, 0xFEC32A00) = 0x000001C3
721/1: setustack(0xFEC32A60)
721/1: sigfillset(0xFEB75DD0) = 0
721/1_at_1: -> libar:_init()
721/1_at_1: <- libar:_init() = 0
721/1: sysconfig(_CONFIG_SEM_VALUE_MAX) = 2147483647
721/1: sysi86(SI86FPSTART, 0xFEB76740, 0x0000133F, 0x00001F80) = 0x00000001
721/1: sysinfo(SI_HOSTNAME, "setup01", 257) = 8
721/1: brk(0x080AB9D8) = 0
721/1: brk(0x080AD9D8) = 0
721/1: sysconfig(_CONFIG_PAGESIZE) = 4096
721/1: open("/etc/mail/opendkim.conf", O_RDONLY) = 3
[...]
722/1: sysinfo(SI_SRPC_DOMAIN, "uofmcc", 256) = 7
722/1: open("/etc/resolv.conf", O_RDONLY|O_LARGEFILE) = 5
722/1: fstat64(5, 0x08036390) = 0
722/1: time() = 1296227516
722/1: fcntl(5, F_DUPFD, 0x00000100) = 256
722/1: close(5) = 0
722/1: read(256, " d o m a i n c c . u m".., 1024) = 109
722/1: read(256, 0x080AD648, 1024) = 0
722/1: close(256) = 0
722/1_at_1: -> libar:ar_init(0x0, 0x0, 0x0, 0x0)
722/1_at_1: -> libar:ar_res_init(0x80be9f0, 0x0)
722/1: getpid() = 722 [721]
722/1: so_socket(PF_INET, SOCK_DGRAM, IPPROTO_IP, "", SOV_DEFAULT) = 5
722/1: ioctl(5, SIOCGLIFNUM, 0x08036684) = 0
722/1: close(5) = 0
722/1: sysinfo(SI_SRPC_DOMAIN, "uofmcc", 256) = 7
722/1: open("/etc/resolv.conf", O_RDONLY|O_LARGEFILE) = 5
722/1: fstat64(5, 0x08036360) = 0
722/1: time() = 1296227516
722/1: fcntl(5, F_DUPFD, 0x00000100) = 256
722/1: close(5) = 0
722/1: read(256, " d o m a i n c c . u m".., 1024) = 109
722/1: read(256, 0x080BF018, 1024) = 0
722/1: close(256) = 0
722/1_at_1: -> libar:ar_res_parse(0x80bea00, 0x80bf008, 0x80bea10, 0x80bea74)
722/1: getuid() = 1 [1]
722/1: getuid() = 1 [1]
722/1: door_info(3, 0x08036630) = 0
722/1: door_call(3, 0x08036688) = 0
722/1: open("/etc/resolv.conf", O_RDONLY) = 5
722/1: fstat64(5, 0x08036720) = 0
722/1: fstat64(5, 0x08036860) = 0
722/1: brk(0x080BF9D8) = 0
722/1: brk(0x080C19D8) = 0
722/1: fstat64(5, 0x080367A0) = 0
722/1: ioctl(5, TCGETA, 0x08036834) Err#25 ENOTTY
722/1: read(5, " d o m a i n c c . u m".., 8192) = 109
722/1: llseek(5, 0, SEEK_CUR) = 109
722/1: close(5) = 0
722/1_at_1: <- libar:ar_res_parse() = 0
722/1_at_1: <- libar:ar_res_init() = 0
722/1: so_socket(PF_UNIX, SOCK_STREAM, 0, "", SOV_DEFAULT) = 5
722/1: so_socket(PF_UNIX, SOCK_STREAM, 0, "", SOV_DEFAULT) = 6
722/1: so_socketpair(0x080BE9F8) = 0
722/1: close(5) = 0
722/1: so_socket(PF_INET, SOCK_DGRAM, IPPROTO_IP, "", SOV_DEFAULT) = 5
722/1: sysconfig(_CONFIG_PAGESIZE) = 4096
722/1: mmap(0x00000000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFE970000
722/1: mmap(0x00000000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFE950000
722/1: sigaction(SIGCANCEL, 0x08036B00, 0x00000000) = 0
722/1: sysconfig(_CONFIG_STACK_PROT) = 7
722/1: mmap(0x00000000, 1040384, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON, -1, 0) = 0xFE851000
722/1: mmap(0x00010000, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFE840000
722/1: getcontext(0x08036920)
722/1: lwp_create(0x08036B50, LWP_SUSPENDED, 0x08036D6C) = 2
722/1: lwp_continue(2) = 0
722/1: so_socket(PF_INET, SOCK_DGRAM, IPPROTO_IP, "", SOV_DEFAULT) = 8
722/1: ioctl(8, SIOCGLIFNUM, 0x080366E4) = 0
722/1: close(8) = 0
722/1: sysinfo(SI_SRPC_DOMAIN, "uofmcc", 256) = 7
722/1: open("/etc/resolv.conf", O_RDONLY|O_LARGEFILE) = 8
722/1: fstat64(8, 0x080363C0) = 0
722/1: brk(0x080C19D8) = 0
722/1: brk(0x080C39D8) = 0
722/1: time() = 1296227516
722/1: fcntl(8, F_DUPFD, 0x00000100) = 256
722/1: close(8) = 0
722/1: read(256, " d o m a i n c c . u m".., 1024) = 109
722/1: read(256, 0x080C1660, 1024) = 0
722/1: close(256) = 0
722/1_at_1: -> libar:ar_init(0x0, 0x0, 0x0, 0x0)
722/1_at_1: -> libar:ar_res_init(0x80c1e70, 0x0)
722/1: getpid() = 722 [721]
722/1: so_socket(PF_INET, SOCK_DGRAM, IPPROTO_IP, "", SOV_DEFAULT) = 8
722/1: ioctl(8, SIOCGLIFNUM, 0x08036674) = 0
722/1: close(8) = 0
722/1: sysinfo(SI_SRPC_DOMAIN, "uofmcc", 256) = 7
722/1: open("/etc/resolv.conf", O_RDONLY|O_LARGEFILE) = 8
722/1: fstat64(8, 0x08036350) = 0
722/1: time() = 1296227516
722/1: fcntl(8, F_DUPFD, 0x00000100) = 256
722/1: close(8) = 0
722/1: read(256, " d o m a i n c c . u m".., 1024) = 109
722/1: read(256, 0x080C2498, 1024) = 0
722/1: close(256) = 0
722/1_at_1: -> libar:ar_res_parse(0x80c1e80, 0x80c2488, 0x80c1e90, 0x80c1ef4)
722/1: getuid() = 1 [1]
722/1: getuid() = 1 [1]
722/1: door_info(3, 0x08036620) = 0
722/1: door_call(3, 0x08036678) = 0
722/1: open("/etc/resolv.conf", O_RDONLY) = 8
722/1: fstat64(8, 0x08036710) = 0
722/1: fstat64(8, 0x08036850) = 0
722/1: brk(0x080C39D8) = 0
722/1: brk(0x080C59D8) = 0
722/1: fstat64(8, 0x08036790) = 0
722/1: ioctl(8, TCGETA, 0x08036824) Err#25 ENOTTY
722/1: read(8, " d o m a i n c c . u m".., 8192) = 109
722/1: llseek(8, 0, SEEK_CUR) = 109
722/1: close(8) = 0
722/1_at_1: <- libar:ar_res_parse() = 0
722/1_at_1: <- libar:ar_res_init() = 0
722/1: so_socket(PF_UNIX, SOCK_STREAM, 0, "", SOV_DEFAULT) = 8
722/1: so_socket(PF_UNIX, SOCK_STREAM, 0, "", SOV_DEFAULT) = 9
722/1: so_socketpair(0x080C1E78) = 0
722/1: close(8) = 0
722/1: so_socket(PF_INET, SOCK_DGRAM, IPPROTO_IP, "", SOV_DEFAULT) = 8
722/1: mmap(0x00000000, 1040384, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON, -1, 0) = 0xFE741000
722/1: lwp_create(0x08036B40, LWP_SUSPENDED, 0x08036D5C) = 3
722/1: lwp_continue(3) = 0
722/1_at_1: <- libar:ar_init() = 0x80c1e70
722/1: fxstat(2, -1, 0x080361B8) Err#9 EBADF
722/1: open("/dev/conslog", O_WRONLY) = 11
722/1: fstat64(11, 0x08035FE0) = 0
722/1: stat64("/dev/pts/5743", 0x080360F0) Err#2 ENOENT
722/1: fcntl(11, F_SETFD, 0x00000001) = 0
722/1: fxstat(2, 11, 0x080361B8) = 0
722/1: fxstat(2, 11, 0x080363D8) = 0
722/1: time() = 1296227516
722/1: brk(0x080C59D8) = 0
722/1: brk(0x080C79D8) = 0
722/1: open("/usr/share/lib/zoneinfo/Canada/Central", O_RDONLY) = 12
722/1: fstat64(12, 0x08035F10) = 0
722/1: fstat64(12, 0x080360E0) = 0
722/1: read(12, " T Z i f\0\0\0\0\0\0\0\0".., 1038) = 1038
722/1: close(12) = 0
722/1: getpid() = 722 [721]
722/1: putmsg(11, 0x08036D98, 0x08036DA4, 0) = 0
722/1: open("/var/run/syslog_door", O_RDONLY) = 12
722/1: fstat64(12, 0x08036020) = 0
722/1: door_info(12, 0x080361F0) = 0
722/1: getpid() = 722 [721]
722/1: door_call(12, 0x08036228) = 0
722/1: close(12) = 0
722/1: mmap(0x00000000, 1040384, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON, -1, 0) = 0xFE642000
722/1: lwp_create(0x08036B90, LWP_SUSPENDED, 0x08036DB0) = 4
722/1: lwp_continue(4) = 0
722/1: sigaction(SIGPIPE, 0x08036D50, 0x08036DD0) = 0
722/1: lwp_sigmask(SIG_SETMASK, 0x0000C003, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
722/1: mmap(0x00000000, 1040384, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON, -1, 0) = 0xFE543000
722/1: lwp_create(0x08036B30, LWP_SUSPENDED, 0x08036D48) = 5
722/1: lwp_continue(5) = 0
722/2: lwp_create() (returning as new lwp ...) = 0
722/2: setustack(0xFE840260)
722/2: schedctl() = 0xFEF30010
722/2_at_2: -> libar:ar_dispatcher(0x80be9f0)
722/2: lwp_sigmask(SIG_SETMASK, 0x0000C003, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
722/3: lwp_create() (returning as new lwp ...) = 0
722/3: setustack(0xFE840A60)
722/3: schedctl() = 0xFEF30020
722/3_at_3: -> libar:ar_dispatcher(0x80c1e70)
722/3: lwp_sigmask(SIG_SETMASK, 0x0000C003, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
722/4: lwp_create() (returning as new lwp ...) = 0
722/4: setustack(0xFE841260)
722/4: schedctl() = 0xFEF30030
722/4: lwp_detach(4) = 0
722/5: lwp_create() (returning as new lwp ...) = 0
722/5: setustack(0xFE841A60)
722/5: schedctl() = 0xFEF30040
721/1: lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF [0x0000FFFF]
721/1_at_1: -> libar:_fini()
721/1_at_1: <- libar:_fini() = 0
721/1: _exit(0)

-- 
-Gary Mills-        -Unix Group-        -Computer and Network Services-
Received on Fri Jan 28 2011 - 19:01:36 PST

This archive was generated by hypermail 2.3.0 : Mon Oct 29 2012 - 23:33:08 PST