Ivy
  1. Ivy
  2. IVY-1105

Excessive hits to missing URLs uses up all ports on Windows

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.1.0-RC1
    • Fix Version/s: 2.2.0-RC1
    • Component/s: Core
    • Labels:
      None
    • Environment:

      windows xp sp3, running Ivy repository through http for remote resolving

      Description

      Modified description to be clearer:
      Ivy is extremely aggressive towards repositories . This can result in
      failures to resolve, even against a healthy repository and with no network latency.

      The symptom:

      [ivy:resolve] 01-07-2008 13:16:24
      org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
      [ivy:resolve] INFO: I/O exception (java.net.BindException) caught when
      processing request: Address already in use: connect.

      This is especially a problem with large repositories (lots of revisions) and resolving against latest.integration as this will fetch ivy.xml md5 and sha1 files for every revision.

      As I've included in a comment, the problem appears to be Ivy's attempts to list URLs that don't actually exist. Ivy builds up URLs using the repository location and appending organizations and module names. We have ivy chains that contain 5 links or more. So for each successful attempt to list an URL, there are several attempts to list non-existent URLs. This is wasteful in terms of time, and can lead to using up all of the available Windows ports on the client machine.

        Issue Links

          Activity

          Ernest Pasour created issue -
          Ernest Pasour made changes -
          Field Original Value New Value
          Link This issue is a clone of IVY-854 [ IVY-854 ]
          Ernest Pasour made changes -
          Affects Version/s 2.0 [ 12312237 ]
          Affects Version/s 2.0.0-beta-2 [ 12312887 ]
          Environment windows xp sp2, linux fedora core 9, running Ivy repository through http for remote resolving and Hudson CI server (publishing to the repo). windows xp sp3, running Ivy repository through http for remote resolving
          Ernest Pasour made changes -
          Description Ivy is extremely aggressive towards repositories . This can result in
          resolving fails, even towards a healthy repository.

          The symptom:

          [ivy:resolve] 01-07-2008 13:16:24
          org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
          [ivy:resolve] INFO: I/O exception (java.net.BindException) caught when
          processing request: Address already in use: connect.

          In effect this happens when Ivy has performed a successfully DOS attack against the repository.

          This is especially a problem when having large repositories (lost of revisions) and resolve against latest.status -> as this will fetch ivy.xml md5 and sha1 files for every revision.
          Modified description to be clearer:
          Ivy is extremely aggressive towards repositories . This can result in
          failures to resolve, even against a healthy repository and with no network latency.

          The symptom:

          [ivy:resolve] 01-07-2008 13:16:24
          org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
          [ivy:resolve] INFO: I/O exception (java.net.BindException) caught when
          processing request: Address already in use: connect.

          This is especially a problem with large repositories (lots of revisions) and resolving against latest.integration as this will fetch ivy.xml md5 and sha1 files for every revision.

          As I've included in a comment, the problem appears to be Ivy's attempts to list URLs that don't actually exist. Ivy builds up URLs using the repository location and appending organizations and module names. We have ivy chains that contain 5 links or more. So for each successful attempt to list an URL, there are several attempts to list non-existent URLs. This is wasteful in terms of time, and can lead to using up all of the available Windows ports on the client machine.
          Maarten Coene made changes -
          Fix Version/s 2.0-RC1 [ 12313012 ]
          Affects Version/s 2.1.0-RC1 [ 12313696 ]
          Affects Version/s 2.0 [ 12312237 ]
          Ernest Pasour made changes -
          Attachment ApacheURLLister.java [ 12414670 ]
          Maarten Coene made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Fix Version/s trunk [ 12313426 ]
          Resolution Fixed [ 1 ]
          Maarten Coene made changes -
          Fix Version/s 2.2.0-RC1 [ 12315013 ]
          Fix Version/s trunk [ 12313426 ]

            People

            • Assignee:
              Maarten Coene
              Reporter:
              Ernest Pasour
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development