Picon
Favicon

Question about perdition & child processes

Is perdition affected by this Red Hat kernel bug?

[dovecot.org]

 

Red Hat/CentOS users: A recent kernel update causes Dovecot to start failing after it has reached 1000 child processes. To fix this, downgrade your kernel until Red Hat releases a fixed kernel.

 

Regards

 

Javier

 

 
______________________________________________
Perdition-users mailing list
Perdition-users <at> vergenet.net
http://lists.vergenet.net/listinfo/perdition-users
Michael Smith | 16 Apr 23:29

More parameters in LDAP?


I'm using perdition quite successfully to 
present a unified interface for users whose mail 
resides on various back-end servers, using LDAP 
routing. 

But I foresee trouble ahead. A gmail backend, for example, 
requires an imaps connection, regardless of how 
the user reached the perdition proxy. gmail also 
requires the full email address (foobar <at> gmail.com), 
but other services just want the user id -- i.e. 
the part before the '@'. There will probably be 
cases where the user id on the backend is quite different
from the user id the user knows about and logs in with. 

In short -- maybe it's a good idea to start thinking 
about having more stuff be LDAP-driven than the 
current three elements.  Has there ever been a discussion 
of some scriptable or extensible facility for 
driving more back-end parameters from LDAP -- maybe 
including even parameters that are normally driven 
by command-line or config file parameters, on a per-
connection basis? 

If this sounds like a good idea at all I'd be happy 
to help with the work. 

Best, 

Michael J Smith
mjs <at> smithbowen.net

______________________________________________
Perdition-users mailing list
Perdition-users <at> vergenet.net
http://lists.vergenet.net/listinfo/perdition-users

Simon Horman | 20 Mar 13:23
Picon
Gravatar

[ANNOUNCE] perdition 1.19-rc5

Hi,

I'm happy to announce the release of perdition 1.19-rc5

Key changes since 1.19-rc4:
* ldap: fix segmentation fault in dbserver_get2()
* Manage-sieve: Fix handling of plain login which would segmentation fault in
  some cases
* Manage-sieve: Fix handling of long authentication hashes
* Enhance --bind_address option parsing to handle IPv6 addresses
* Fix 8/4byte integer type miss-matches which may lead to undefined behaviour

A full change log is provided by the Mercurial repository
http://hg.vergenet.net/perdition/perdition/

Perdition 1.19-rc5 and the vanessa libraries that it depends on
are available from:
http://horms.net/linux/perdition/download/1.19-rc5/

Debian unstable packages have been uploaded to Debian.Org
and should be available in the Debian archive within 24 hours.
http://packages.debian.org/source/unstable/perdition

______________________________________________
Perdition-users mailing list
Perdition-users <at> vergenet.net
http://lists.vergenet.net/listinfo/perdition-users

Problem bridging IMAPS to IMAP real server

hi,

I use Perdition perdition-1.17.1_6 on FreeBSD 8.2 witch mysql option.

I want bridging IMAPS connection (993) to Perdition on IMAP (143) to real
server and POPS (995) connection on Perdition on POP(110) to real serveur.

All ports is setting to NULL in database

I activate SSL with:
ssl_mode ssl_listen

I generate certificat thanks to man documentation

993 port is open but Perdition call with real server on port 993 instead
of 143.

The bridging works fine if i set "port=143' in database but the POP proxy
don't work.

Could you help me to find my mistake ?

thanks a lot

(i'm french and bad english...sorry)

______________________________________________
Perdition-users mailing list
Perdition-users <at> vergenet.net
http://lists.vergenet.net/listinfo/perdition-users

N V | 29 Feb 12:02
Picon

Fatal error accepting child connection

Hi, last night i get the following error in the log

perdition.imaps[2686]: Fatal error accepting child connection. Exiting.

I checked Google but didn't find anything

Does anybody see the same error?

My setup:
Debian 6.0.3 i386
Perdition 1.19-rc4

Sorry about my English...

Thanks in advance!
Nix

______________________________________________
Perdition-users mailing list
Perdition-users <at> vergenet.net
http://lists.vergenet.net/listinfo/perdition-users
Christian Balzer | 29 Feb 06:40

Perdition being far too chatty in the mail warn and error logs


Hello Simon,

if you're still/again in Tokyo, how did you like the snow this morning? ^o^

Debian Squeeze, thus Perdition 1.19~rc4-2.

This version will log any and all session close activities to mail.warn
and mail.err. 
Aside from wasting disk space (not really an issue here) and making the
files pretty unreadable (I'd expect to find only a few lines of actual
problems if any happened in there) the logging to mail.err is
particular troublesome as this log file by default will be synced after
each entry. And I'm dealing with 20-50 sessions per second here.

Would be nice if this could be remedied.

Looking at older (1.17) logs I'd suggest that "Closing NULL session"
doesn't belong into mail.err, probably not even into mail.warn.

Regards,

Christian
--

-- 
Christian Balzer        Network/Systems Engineer                
chibi <at> gol.com   	Global OnLine Japan/Fusion Communications
http://www.gol.com/
______________________________________________
Perdition-users mailing list
Perdition-users <at> vergenet.net
http://lists.vergenet.net/listinfo/perdition-users

tobi | 28 Feb 16:09
Picon
Picon

Problem with external Real Server

Hi all together

my first post, so hopefully I do not ask something that has already been
asked several times :-)
I installed perdition on my server and it works very well for my local
dovecot. clients can connect and perdition connects to the local server.
So far perfect :-)
Now I thought that I could connect from perdition to other external
servers as well. So I set an entry in popmap for user <at> domain.tld to
point to server imap.domain.tld:995
But when I check the logfiles I can see that perdition cannot connect to
the external server. Although I can ping the server without problems.
One strange thing in the logs is that as protocol always IMAP4S is used,
even if port 995 would demand for POP3S.
How can I achieve that perdition connects via POP3S to a real server,
although the initial connection to perdition by client is based on
IMAP4S. I tried to setup the real server as well with port 993 in popmap
so port and protocol should match. but that did not work either.

Thanks for any idea on how to solve that
Cheers

tobi
______________________________________________
Perdition-users mailing list
Perdition-users <at> vergenet.net
http://lists.vergenet.net/listinfo/perdition-users

Todd Taylor | 9 Feb 20:39
Favicon

Errors in perdition IMAP auth to courier-imap

Hello,

 

We have deployed Perdition 1.19rc4 to proxy user requests during a migration with popmap via LDAP.  While POP works fine, we are seeing authentication failures through Perdition to the Courier IMAP, as shown below.  I see there was a similar issue reported in build 1.18, in early 2011, but it was thought to be fixed since then. That post is at: http://lists.vergenet.net/pipermail/perdition-users/2011-January/002468.html

 

Am I missing an IMAP configuration setting or is this still a bug?  Any help you can offer is much appreciated.

 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: CLIENT: ". login hemigtest5 <at> unix.local password\r\n" 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: username_add_domain: username_add_domain 0 1 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: do_getserver: dbserver_get returned empty string 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: username_add_domain: username_add_domain 0 4 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: REAL:   "* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA ACL ACL2=UNION  XIMAPPROXY] Courier-IMAP ready. Copyright 1998-2010 Double Precision, Inc. See COPYING for distribution information.\r\n" 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: SELF:   "flim0a CAPABILITY\r\n" 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: REAL:   "* CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA ACL ACL2=UNION XIMAPPROXY\r\nflim0a OK Completed\r\n" 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: SELF:   "flim0b LOGIN {21}\r\n" 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: REAL:   "+ go ahead\r\n" 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: SELF:   "hemigtest5 <at> unix.local {8}\r\n" 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: REAL:   "flim0b NO LOGIN failed\r\n" 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: imap4_out_response: invalid tag from server 1 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: imap4_out_authenticate: imap4_out_response name 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: SELF:   "password\r\n" 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: REAL:   "password BAD Null command\r\n" 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: imap4_out_response: invalid tag from server 1 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: imap4_out_authenticate: imap4_out_response passwd 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: main: protocol->out_authenticate -1 

Feb  9 14:53:44 dp-perdition-01 perdition.imap4[5904]: Fatal error authenticating user. Exiting child. 

 

Thanks,

Todd

 

______________________________________________
Perdition-users mailing list
Perdition-users <at> vergenet.net
http://lists.vergenet.net/listinfo/perdition-users
tjilik lim | 26 Jan 08:08
Picon
Favicon

Invitation to connect on LinkedIn

 
 
 
 
From tjilik lim
 
Consultant at Personal
Greater Jakarta Area, Indonesia
 
 
 

I'd like to add you to my professional network on LinkedIn.

- tjilik

 
 
 
 
 
 
You are receiving Invitation to Connect emails. Unsubscribe
© 2012, LinkedIn Corporation. 2029 Stierlin Ct. Mountain View, CA 94043, USA
 
______________________________________________
Perdition-users mailing list
Perdition-users <at> vergenet.net
http://lists.vergenet.net/listinfo/perdition-users
Steven Stillaway | 16 Jan 17:59

Help with add_domain

Hello,

I am trying to do something I thought would be simple, but seem to be 
messing up somehow.  I have tried following the documentation, but with 
no success so I figured I would ask here and see if anyone had a 
suggestion.  I don't know what I am missing.

The idea was to use perdition in a migration from an old POP3 server to 
a new zimbra mail server.  In testing I am running perdition from the 
command line as follows:

perdition -A remote_login,1  -C -d -F - -l 111 -M 
/usr/lib/libperditiondb_gdbm.so.0 -p 110

Running on Port 111 to test, will be moved to 110 when working.  The 
idea is for most accounts to just log in to the local server as normal 
-- this works fine.

My popmap is as follows:

sammy:sammy <at> zimbra.realnet.com

In /etc/hosts I have:

64.147.109.53    zimbra.realnet.com
zimbra.realnet.com    64.147.109.53

When you login to port 111 as the user 'sammy' it tries to do a 
connection to the server 'zimbra.realnet.com', but as the USER 'sammy', 
not as the USER 'sammy <at> realnet.com'.  According to what I have read the 
command "-A remote_login,1" should add the domain with the 'zimbra' 
removed and login.

My logs show it is trying to login to the correct server, but just as 
the USER 'sammy' not as 'sammy <at> realnet.com'.  The add_domain does not 
appear to be working for some reason.

Here are the debug logs for perdition if that helps (password blanked out):

arthur:/etc/perdition# perdition -A remote_login,1  -C -d -F - -l 111 -M 
/usr/lib/libperditiondb_gdbm.so.0 -p 110
Jan 16 11:52:41 perdition[4959]: Starting perdition version=1.19-rc4 
protocol=POP3
Jan 16 11:52:41 perdition[4959]: add_domain="remote_login,1", 
authenticate_in=off, authenticate_timeout=1800, bind_address="", 
client_server_specification=off, 
config_file="/etc/perdition/perdition.conf", connection_limit=0, 
connection_logging=on, connect_relog=300, debug=on, 
domain_delimiter="@", explicit_domain="", group="nogroup", 
imap_capability="IMAP4 IMAP4REV1", inetd_mode=off, listen_port="111", 
log_facility="-", log_passwd="never", login_disabled=off, lower_case="", 
managesieve_capability=""IMPLEMENTATION" "perdition"  "SIEVE" 
"comparator-i;octet comparator-i;ascii-casemap fileinto reject envelope 
encoded-character vacation subaddress comparator-i;ascii-numeric 
relational regex imap4flags copy include variables body enotify 
environment mailbox date"  "SASL" "PLAIN"  "NOTIFY" "mailto"  "VERSION" 
"1.19-rc4"", map_library="/usr/lib/libperditiondb_gdbm.so.0", 
map_library_opt="", no_bind_banner=off, no_daemon=off, no_lookup=off, 
tcp_keepalive=off, nodename="arthur", ok_line="You are so in", 
outgoing_port="110", outgoing_server="localhost", 
pid_file="/var/run/perdition/perdition.pid", pop_capability="UIDL.USER", 
protocol="POP3", server_resp_line=off, strip_domain="", timeout=1800, 
username="nobody", username_from_database=off, query_key="", quiet=off 
(mask=0x0042a081 00000000)
Jan 16 11:52:41 perdition[4959]: ssl_mode="", ssl_ca_file="", 
ssl_ca_path="/etc/perdition/perdition.ca/", 
ssl_ca_accept_self_signed="off", 
ssl_cert_file="/etc/perdition/perdition.crt.pem", 
ssl_cert_accept_expired="off", ssl_cert_not_yet_valid="off", 
ssl_cert_self_signed="off", ssl_cert_verify_depth=9, 
ssl_key_file="/etc/perdition/perdition.key.pem", ssl_listen_ciphers="", 
ssl_outgoing_ciphers="", ssl_no_cert_verify="off", 
ssl_no_client_cert_verify="off", ssl_no_cn_verify="off" 
ssl_passphrase_fd=0, ssl_passphrase_file="(null)", (ssl_mask=0x00000000)
Jan 16 11:52:41 perdition[4959]: vanessa_socket_daemon_setid: uid=65534 
euid=65534 gid=65534 egid=65534
Jan 16 11:52:47 perdition[4968]: Connect:  127.0.0.1:35488->127.0.0.1:111
Jan 16 11:52:47 perdition[4968]: SELF:   "+OK POP3 perditon ready on 
localhost 00028a10\r\n"
Jan 16 11:52:49 perdition[4968]: CLIENT: "USER sammy\r\n"
Jan 16 11:52:49 perdition[4968]: SELF:   "+OK USER sammy set, mate\r\n"
Jan 16 11:52:56 perdition[4968]: CLIENT: "PASS Samhain42\r\n"
Jan 16 11:52:56 perdition[4968]: username_add_domain: 
username_add_domain 4 1
Jan 16 11:52:56 perdition[4968]: username_add_domain: 
username_add_domain 4 4
Jan 16 11:52:56 perdition[4968]: username_add_domain: No domain 
completely stripped away, not added
Jan 16 11:52:56 perdition[4968]: REAL:   "+OK zm3.realnetdb.com Zimbra 
POP3 server ready\r\n"
Jan 16 11:52:56 perdition[4968]: SELF:   "USER sammy\r\n"
Jan 16 11:52:56 perdition[4968]: REAL:   "+OK hello sammy, please enter 
your password\r\n"
Jan 16 11:52:56 perdition[4968]: SELF:   "PASS XXXXXXXXX\r\n"
Jan 16 11:52:57 perdition[4968]: REAL:   "-ERR invalid 
username/password\r\n"
Jan 16 11:52:57 perdition[4968]: SELF:   "QUIT\r\n"
Jan 16 11:52:57 perdition[4968]: REAL:   "+OK zm3.realnetdb.com Zimbra 
POP3 server closing connection\r\n"
Jan 16 11:53:00 perdition[4968]: SELF:   "-ERR failed: Re-Authentication 
Failure\r\n"
Jan 16 11:53:00 perdition[4968]: Auth: 127.0.0.1:35488->127.0.0.1:111 
client-secure=plaintext authorisation_id=NONE authentication_id="sammy" 
server="zimbra.realnet.com:110" protocol=POP3 server-secure=plaintext 
status="failed: Re-Authentication Failure"
Jan 16 11:53:05 perdition[4968]: CLIENT: "quit\r\n"
Jan 16 11:53:05 perdition[4968]: SELF:   "+OK QUIT\r\n"
Jan 16 11:53:05 perdition[4968]: Closing NULL session: 
127.0.0.1:35488->127.0.0.1:111 authorisation_id=NONE authentication_id=y"

If I change the perdiction command to be this:

perdition -A remote_login,1  -C -d -e realnet.com -F - -l 111 -M 
/usr/lib/libperditiondb_gdbm.so.0 -p 110 -s localhost:110

the explicit adding of the realnet.com works and the user 'sammy' can 
now login to the remote server.  However, any users on the local server 
now add the '@realnet.com' and their logins fail.

Sorry for the long first message and the bother, but any help will be 
appreciated.

Thanks!

--

-- 
- Steven
Realnet Solutions

______________________________________________
Perdition-users mailing list
Perdition-users <at> vergenet.net
http://lists.vergenet.net/listinfo/perdition-users

Eric Yiu | 16 Dec 10:11
Picon

perdition crash on v1.18

Hi,

We migrated the perdition machine to a VM as well as upgrade the package from perdition-1.17
to perdition-1.18.

From Time to time, this new perdition is just dead randomly a few times a day.  I finally have a time
to strace the perdition.pop3 dead of what is happening, here is the info:

accept(4, {sa_family=AF_INET, sin_port=htons(53846), sin_addr=inet_addr("<IP Address so show>")}, [6256062840960974864]) = 5
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2b1169929a80) = 21625
close(5)                                = 0
fcntl(4, F_SETFL, O_RDWR)               = 0
poll([{fd=4, events=POLLIN}], 1, -1)    = -1 EINTR (Interrupted system call)
--- SIGCHLD (Child exited) <at> 0 (0) ---
rt_sigaction(SIGCHLD, {0x405260, [CHLD], SA_RESTORER|SA_RESTART, 0x2b1167c4f2d0}, {0x405260, [CHLD], SA_RESTORER|SA_RESTART, 0x2b1167c4f2d0}, 8) = 0
wait4(4294967295, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 21609
wait4(4294967295, 0x7fffcd9be574, WNOHANG, NULL) = 0
rt_sigreturn(0xffffffff)                = -1 EINTR (Interrupted system call)
poll([{fd=4, events=POLLIN}], 1, -1)    = -1 EINTR (Interrupted system call)
--- SIGCHLD (Child exited) <at> 0 (0) ---
rt_sigaction(SIGCHLD, {0x405260, [CHLD], SA_RESTORER|SA_RESTART, 0x2b1167c4f2d0}, {0x405260, [CHLD], SA_RESTORER|SA_RESTART, 0x2b1167c4f2d0}, 8) = 0
wait4(4294967295, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 21622
wait4(4294967295, 0x7fffcd9be574, WNOHANG, NULL) = 0
rt_sigreturn(0xffffffff)                = -1 EINTR (Interrupted system call)
poll([{fd=4, events=POLLIN}], 1, -1)    = 1 ([{fd=4, revents=POLLIN}])
fcntl(4, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
accept(4, {sa_family=AF_INET, sin_port=htons(2005), sin_addr=inet_addr("<IP Address so show>")}, [15350237863505559568]) = 5
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2b1169929a80) = 21626
close(5)                                = 0
fcntl(4, F_SETFL, O_RDWR)               = 0
poll([{fd=4, events=POLLIN}], 1, -1)    = 1 ([{fd=4, revents=POLLIN}])
fcntl(4, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
accept(4, {sa_family=AF_INET, sin_port=htons(51774), sin_addr=inet_addr("<IP Address so show>")}, [4524428784237019152]) = 5
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2b1169929a80) = 21627
close(5)                                = 0
fcntl(4, F_SETFL, O_RDWR)               = 0
poll([{fd=4, events=POLLIN}], 1, -1)    = 1 ([{fd=4, revents=POLLIN}])
fcntl(4, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(4, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
accept(4, 0x7fffcd9be920, [4524428784237019264]) = -1 ECONNABORTED (Software caused connection abort)
accept(4, 0x7fffcd9be920, [4524428784237019264]) = -1 EAGAIN (Resource temporarily unavailable)
fcntl(4, F_SETFL, O_RDWR)               = 0
time([1323309467])                      = 1323309467
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2183, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2183, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2183, ...}) = 0
sendto(3, "<19>Dec  8 12:57:47 perdition[73"..., 86, MSG_NOSIGNAL, NULL, 0) = -1 ENOTCONN (Transport endpoint is not connected)
close(3)                                = 0
socket(PF_FILE, SOCK_DGRAM, 0)          = 3
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
connect(3, {sa_family=AF_FILE, path="/dev/log"...}, 110) = 0
sendto(3, "<19>Dec  8 12:57:47 perdition[73"..., 86, MSG_NOSIGNAL, NULL, 0) = 86unlink("/var/run/perdition.pop3/perdition.pop3.pid") = 0
getrlimit(RLIMIT_NOFILE, {rlim_cur=4*1024, rlim_max=4*1024}) = 0
close(0)                                = 0
close(1)                                = 0
close(2)                                = 0
close(3)                                = 0
....
..

This is also catched similarly at different VM too.

I checked the source, it seems 1.17 is using blockIO while 1.18 use nonBlockIO.  At the vanessa_socket_server.c

static pid_t
__vanessa_socket_server_accept(int *g, int listen_socket, int *listen_socketv,...
...
..

        for(;;) {
                addrlen = sizeof(from);
                *g = accept(listen_socket, (struct sockaddr *) &from, &addrlen);                if (*g  < 0) {
                        if(errno == EINTR || errno == ECONNABORTED) {
                                continue; /* Ignore EINTR  and ECONNABORTED */
                        }
                        if (errno == EAGAIN || errno == EWOULDBLOCK)
                                return -1; /* Don't log EAGAIN or EWOULDBLOCK */                        VANESSA_LOGGER_DEBUG_ERRNO("accept");
                        return(-1);
                }

....
..

So if the perdition face an ECONNABORTED, it accept() again, it will return -1 if there is no
incoming socket, after a few return, it seems that (not sure) it will out of the loop and
"goto out" and finally return to perdition to exit the program.

Is there a patch for that? or the later version fix this?

Eric

______________________________________________
Perdition-users mailing list
Perdition-users <at> vergenet.net
http://lists.vergenet.net/listinfo/perdition-users

Gmane