Troubles installing ports with Macports 2.3.1

Clemens Lang cal at macports.org
Wed Jul 2 14:57:29 PDT 2014


Hi,

> Ok, but that would only be enough http requests to determine if an archive
> for the main port is available, right? So ideally 1 http request (in the
> case where the archive exists on the server it tried), or maybe a few
> requests (to check a few additional servers). It wouldn't be proportional to
> the number of dependencies.

Yes it would. The check is run to find out whether an archive is available (in
which case the build dependencies for this port can be skipped), but the same
is not necessarily true for other dependencies. Consequently, the same check
is run for every port in the dependency tree of the main port.

I think this may be related to http://trac.macports.org/changeset/117022 where
I changed from curl_easy_cleanup() to curl_easy_reset() and kept the handle
alive for re-use instead of destroying it. From the manpage of curl_easy_reset:

  It does not change the following information kept in the handle: live
  connections, the Session ID cache, the DNS cache, the cookies and shares.

So if your connections somehow never time out (e.g., after the HTTP HEAD
request sent by CurlGetSizeCmd or CurlIsNewerCmd), this could cause these
problems. We could work around this by
 - Reducing the timeout:
   I don't think that would help because even with only a few seconds of
   timeout, your computer still can open new connections quicker than they
   will reach the timeout, triggering the problem.
 - Calling curl_easy_cleanup() instead of curl_easy_reset() every ~10 calls:
   Might defeat the original purpose of the change, which was enabling re-use
   of HTTP connections.

The original question remains, though: Why aren't your connections closed, or
re-used?

-- 
Clemens Lang


More information about the macports-users mailing list