Push mail works by doing what is pretty much a perversion of how HTTP is 
supposed to work.

That Push request does a GET, and the server sits there and never responds… 
unless it has data to send.  Then it can send that data and not close the 
stream, or continue to send chunks of data along the line.  For responses, a 
connection forcibly closed can be used as a trigger to initiate data being sent 
in the opposite direction.

I bet that no matter what you set your timeout to, you’re going to experience 
timeouts in the log.  That’s because the z-push server will literally keep the 
connection open forever if you let it.  (Unless you can set a max lifetime or 
something in zpush, which would need to be less than what you set in pound)  
From your 1260 thread link below it’s clear to me that your Pound backend 
timeout is set to 120 seconds.  You’ll likely want that higher.

However, the point is that even with these errors, the client should just 
reconnect and get another persistent connection.  Are you actually having any 
problems? Or is it just that the log is showing errors?  If it’s the latter, 
that’s the nature of the protocol mobile devices use for Push, and there’s not 
much pound can do about it.  (There’s no way to know which connections should 
live forever, and which shouldn’t, so pound can’t treat it differently… And if 
it did, that would open yourself up for a DoS attack)  As it is, you’ll want to 
make sure your Threads value in pound is high enough to cover ALL concurrent 
devices that will use that type of connection, plus anything else you need to 
support.  (Because each device will try to always have 1 connection open)

Joe

From: Jean-Pierre van Melis [mailto:[email protected]]
Sent: Sunday, April 08, 2012 4:20 AM
To: [email protected]
Subject: [Pound Mailing List] Ping errors in error log when using pound as a 
reverse proxy for Zarafa (Exchange for Linux)




I'm using pound for a long time and I think it's great. I have 3 things that I 
would like to change. I have already asked  2 of them and it seems they are not 
going to happen.



One is turning pound into a complete transparent proxy using T_PROXY (iptables) 
and the other one was URL-manipulation.



Now I don't really want a new feature, but would like to know what's happening. 
I am using Pound with several servers and one of them is my MTA, a Zarafa 
server that supports "Microsoft-Activesync". In my errorlog of pound I'm 
getting constantly messages about "ping".



How it works, I don't know, but I'm convinced it needs it for "push-mail" to 
work. Is it something that pound should support? I've already asked the people 
of Z-push, but they didn't help me further. Another user of Z-push using Nginx 
has the same problem...



I would really like some info how I can get it to work properly.



The last post says it is resolved by raising the timeout value, but I think 
they just solved the entries in their logs. I'm not using push-mail but let my 
clients (Android Phones) sync periodically.



http://z-push.sourceforge.net/phpbb/viewtopic.php?f=2&t=1138

http://z-push.sourceforge.net/phpbb/viewtopic.php?f=4&t=1260


Reply via email to