From: Junio C Hamano Date: Fri, 19 Oct 2012 00:37:45 GMT Subject: Re: Fix potential hang in https handshake (v2). Message-ID: <7v4nlrl2jq.fsf@alter.siamese.dyndns.org> In-Reply-To: <7v8vb3l2q5.fsf@alter.siamese.dyndns.org> Junio C Hamano writes: > We end up calling select() without any bit set in fds, so it would > become micro-sleep of select_timeout in such a case, but as far as I > can see, the existing code either > > * does not select() and keeps polling step_active_slots() without > delay, when curl_timeout gives a 0 return value; or > > * sets 50ms timeout or whatever negative value derived from > curl_timeout when the returned value is not 0 nor -1. > > Is the symptom that select(), when given a negative timeout and no > fd to wake it, sleeps forever (or "loooong time, taking that negative > value as if it is a large unsigned long") or something? Addendum. What I am trying to get at are (1) three line description I can put in the release notes for this fix when it is merged to the maintenance track, and (2) a feel of how often this happens and how bad the damage is. The latter helps us judge if this "do the normal thing, but if in a rare case where we do not find any fds, patch it up to proceed" is a better approach over your original. Thanks.