[Pidgin] #9234: XMPP Pings must be made configurable for users

Pidgin trac at pidgin.im
Tue May 26 15:48:45 EDT 2009


#9234: XMPP Pings must be made configurable for users
-------------------------+--------------------------------------------------
 Reporter:  niraj19july  |        Owner:  deryni 
     Type:  defect       |       Status:  pending
Milestone:               |    Component:  XMPP   
  Version:  2.5.6        |   Resolution:         
 Keywords:               |  
-------------------------+--------------------------------------------------
Changes (by deryni):

  * status:  new => pending


Comment:

 We didn't decide that 2 minutes "is okay" we decided 30 seconds was
 unreasonable and two minutes was acceptable as a replacement for 30
 seconds.

 I want to start off by saying that if you are dealing with a server that
 routinely cannot process ping requests within two minutes that you are
 dealing with a server which is *grossly* oversold and should be replaced
 forthwith. Two minutes is an *exceedingly* long time for a basic network
 no-op response.

 The average user *cannot* decide what timeout length is ok, they don't
 have anywhere near the understanding or available information to decide,
 nor should they have to so presenting them with such an option is
 confusing and will just cause them to tweak it incorrectly.

 Disabling pings is not a good idea, it serves no useful purpose. It would
 serve even less useful purpose if our timeout policy was adjusted to
 indicate potential disconnection and/or lag rather than simply
 disconnecting at the first sign of delay.

 TCP timeouts can be *very* long, long enough that they clearly didn't
 solve the normal user usage case which caused the XMPP Ping XEP to be
 written. The XEP was written exactly because most users were unhappy with
 the whitespace ping/TCP timeout mechanisms most clients (including pidgin)
 were previously using. Those pings/timeouts were causing disruptively long
 lag periods between when the connection went dead and when pidgin (and
 therefore the user) noticed it. These lags caused message loss and other
 unpleasant user experiences as well.

 I'm going to skip file transfer for a second to handle the postscript
 comment.

 It is not pidgin's job to keep a server from being overloaded, it is the
 servers job to handle requests in reasonable periods of time (30 seconds
 is unreasonable, we feel that two minutes is not, we would likely be fine
 with a default of 3 minutes as well, possibly even 5, above that we get
 well beyond what most people think of as 'quick' detection of network
 connection loss).

 So the fact that a server is so crippled as to be unable to respond to an
 incredibly basic request within two minutes is an unfortunate fact of an
 overloaded server and not something we need to be working around
 carefully.

 It was not useful to bring file transfers into this discussion because the
 issue here is about ping responses and connection liveliness. File
 transfers are their own pings as we are constantly using the connection
 (in one or both directions). We are not discussing timing out random TCP
 connections.

 Do you have a specific slow server that you deal with frequently? Are you
 seeing ping response related timeout issues yourself? Are you seeing them
 for people you deal with? Or are you suggesting this because you think it
 should exist regardless? Since bumping the timeout to 2 minutes I have
 never been pinged offline incorrectly, and I do not recall hearing any
 complaints about ping timeouts (other than with clearly broken servers).

 I'm still not convinced that we have any issue here other than that we
 'overreact' to ping response timeouts. I've said it before, our kill-
 everything timeout policy is sub-optimal and should definitely be changed,
 I'm just unsure how better to handle it but welcome discussion and
 patches.

-- 
Ticket URL: <http://developer.pidgin.im/ticket/9234#comment:3>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list