[ 
https://issues.apache.org/jira/browse/IVY-1105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12735731#action_12735731
 ] 

Ernest Pasour commented on IVY-1105:
------------------------------------

>From Nascif:
I believe we are seeing the same issue on Ivy 2.0 final, will post more details 
soon.

I have to agree that the current design is very much a DOS attack on the 
server. Our scenario is very much as described above as well, large number of 
modules, with large number of revisions, and resolving for latest. We can 
easily get to thousands of connections created and destroyed in a resolve, and 
we are bumping into the Windows limitations described in 
http://support.microsoft.com/default.aspx?scid=kb;EN-US;196271. For continuous 
integration builds, this is a major issue.

I wonder if a different approach could be taken for the url resolver. Instead 
of releasing the connection on every download() and upload(), why not take 
advantage of HTTP 1.1 ability to keep connections open? You would go from 
thousands of connections per resolve to 1 - and it would be constant, instead 
of on the order of modules x versions x resolvers as it is today.

Since there is already a concept of locking in Ivy, it means there is a concept 
of transaction borders. You could use that to implement to setup and closing of 
the connection.
http://java.sun.com/j2se/1.5.0/docs/guide/net/http-keepalive.html


> Excessive hits to missing URLs uses up all ports on Windows
> -----------------------------------------------------------
>
>                 Key: IVY-1105
>                 URL: https://issues.apache.org/jira/browse/IVY-1105
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.0-beta-2
>         Environment: windows xp sp2, linux fedora core 9, running Ivy 
> repository through http for remote resolving and Hudson CI server (publishing 
> to the repo).
>            Reporter: Ernest Pasour
>            Assignee: Maarten Coene
>             Fix For: 2.0-RC1
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to