perdition processes (forks) get stuck in endless loop

Ariel Biener <[email protected]>
Newsgroups gmane.mail.perdition.user
Organization Tel Aviv University
Message-ID <[email protected]>
We have configured two perdition servers (as front ends to 4 dovecot),
using eDirectory as an LDAP backend, with anonymous queries. The perdition
servers are load balanced using round robin (I also used least conns for a
while) via a 6513 3BXL switch, using the embedded load balancer
in the IOS, and not the dedicated blade. The hosts are two HP DL140 machines.
The clients connect with either imap/imaps/pop3/pop3s, and we connect to
the backend servers with either imap or pop3. The conf is below. On the LDAP
side, everything is properly indexed.

connection_logging
connect_relog 0
F mail
g nobody
imap_capability IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND
UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS STARTTLS
map_library /usr/lib64/libperditiondb_ldap.so
map_library_opt "ldap://ldapserver:389/o=someorg?cn,nSCPAmailHost?sub?(&
(uid=%25s)(objectClass=nSCPMailRecipient)(!
(nSCPAmailMessageStore=inactive*)))"
server_resp_line
outgoing_server imapold.somedomain
S all
timeout 0
u nobody
ssl_ca_accept_self_signed
ssl_cert_file /etc/perdition/perdition.crt.pem
ssl_cert_accept_self_signed
ssl_cert_accept_expired
ssl_cert_accept_not_yet_valid
ssl_key_file /etc/perdition/perdition.key.pem
ssl_no_cert_verify
ssl_no_cn_verify

Every 10-15 minutes on the average, one of the perdition client processes
(a fork from one of the 4 listeners - imap/imaps/pop3/pop3s) enters a loop
(easily seen both with strace and while in that loop, the CPU the process is
running on is at 100% usage.
For now, I've written a small health check monitor that checks for these
runaway processes, and kills them.

While I cannot run perdition in full debug mode to check what is happening
(due to the load of connections we get here), I can share the details I have,
from both the logs and ltrace/strace.

The logs show Re-Authentication failure for each of these sessions....

The ltrace of the looping process looks like this:

select(1024, 0x7fffed4aa940, 0, 0x7fffed4aa9c0, 0x7fffed4aa8a0) = 0
time(NULL) = 1231363480
vanessa_list_get_element(0x83a9ef0, 0x7fffed4aa644, 0x7fffed4aa690, 5,
0x7fffed4aa8a0) = 0x8397aa0
SSL_pending(0x8397250, 0x7fffed4aa644, 0x8397aa0, 5, 0x7fffed4aa8a0) = 0
select(1024, 0x7fffed4aa940, 0, 0x7fffed4aa9c0, 0x7fffed4aa8a0) = 0
time(NULL) = 1231363480
vanessa_list_get_element(0x83a9ef0, 0x7fffed4aa644, 0x7fffed4aa690, 5,
0x7fffed4aa8a0) = 0x8397aa0
SSL_pending(0x8397250, 0x7fffed4aa644, 0x8397aa0, 5, 0x7fffed4aa8a0) = 0
select(1024, 0x7fffed4aa940, 0, 0x7fffed4aa9c0, 0x7fffed4aa8a0) = 0
time(NULL) = 1231363480
vanessa_list_get_element(0x83a9ef0, 0x7fffed4aa644, 0x7fffed4aa690, 5,
0x7fffed4aa8a0) = 0x8397aa0
SSL_pending(0x8397250, 0x7fffed4aa644, 0x8397aa0, 5, 0x7fffed4aa8a0) = 0
select(1024, 0x7fffed4aa940, 0, 0x7fffed4aa9c0, 0x7fffed4aa8a0) = 0
time(NULL) = 1231363480

The strace looks like this:

select(1024, [5], NULL, [5], {0, 0}) = 0 (Timeout)

select(1024, [5], NULL, [5], {0, 0}) = 0 (Timeout)

......

Does any of you have an idea about what may be wrong ?

best.

--Ariel
--
Ariel Biener, CISO
Tel-Aviv University CIT div.
e-mail: [email protected]
phone: 03-6406086
PGP key: http://www.tau.ac.il/~ariel/pgp.html

______________________________________________
Perdition-users mailing list
[email protected]
http://lists.vergenet.net/listinfo/perdition-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.