Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [m2e-users] M2E consumes all available user ports and does not recover

Well, I'll attach a pom.xml file which has lot of dependencies and thus it can be used as an instance of a problem (if running on Win XP, with fast enough internet access etc so that upper bound of port 5000 is reached while all ports are in the TIME_WAIT state).

However, if I understand it right, the problem could be reduced to "what m2e does when it cannot create a new socket and needs to download a jar needed for the runtime".

If I'm right, the biggest problem with m2e is that it won't recover without help from the outside (assuming you have several artifacts in the repository that have the record: "Address already in use: no further information")
1. If you run the Eclipse build, artifact resolution is not reattempted and therefore you get undeterministic error based on what exactly is missing in the local repo
2. If you update the project, artifact resolution is not reattempted either
3. If you check "Force update snapshots/releases" you'll run into the same problem of consuming all the user ports

Although, I'm still not sure if this is an application level problem or OS level problem, because "out of system resources" is typically something you don't handle on the application level, right?..


How to reproduce the problem:
1. Clean local artifacts cache
2. Add settings.xml attached at the end of mail (includes dummy repositories so that the sockets limit is reached faster)
3. Run Eclipse and import a project from the pom.xml attached at the end of the mail
4. Now, you can monitor the number of ports in the TIME_WAIT state. If the number reaches the maximum you'll start to get diverse errors depending on what exactly was not downloaded.
5. Try to recover from this problem. My experience is that it's not possible by using m2e only (without running build from the command line)



Attachements (pasted .. sorry for that):



SETTINGS.XML

<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
        <activeProfiles>
                <activeProfile>foo</activeProfile>
        </activeProfiles>
 
        <profiles>
                <profile>
                        <id>foo</id>
 
                        <repositories>
                                <repository>
                                        <id>test1</id>
                                        <name>AGF Development team repository</name>
                                        <url>http://google.com/artifactory/1</url>
                                        <snapshots>
                                                <enabled>false</enabled>
                                        </snapshots>
                                </repository>
<repository>
                                        <id>test2</id>
                                        <name>AGF Development team repository</name>
                                        <url>http://google.com/artifactory/2</url>
                                        <snapshots>
                                                <enabled>false</enabled>
                                        </snapshots>
                                </repository>
<repository>
                                        <id>test3</id>
                                        <name>AGF Development team repository</name>
                                        <url>http://google.com/artifactory/3</url>
                                        <snapshots>
                                                <enabled>false</enabled>
                                        </snapshots>
                                </repository>
<repository>
                                        <id>test4</id>
                                        <name>AGF Development team repository</name>
                                        <url>http://google.com/artifactory/4</url>
                                        <snapshots>
                                                <enabled>false</enabled>
                                        </snapshots>
                                </repository>
                        </repositories>
 
                        <pluginRepositories>
                                <pluginRepository>
                                        <id>test2</id>
                                        <name>AGF Development team repository</name>
                                        <url>http://google.com/artifactory/2</url>
                                        <snapshots>
                                                <enabled>false</enabled>
                                        </snapshots>
                                </pluginRepository>
                                <pluginRepository>
                                        <id>test1</id>
                                        <name>AGF Development team repository</name>
                                        <url>http://google.com/artifactory/1</url>
                                        <snapshots>
                                                <enabled>false</enabled>
                                        </snapshots>
                                </pluginRepository>
                                <pluginRepository>
                                        <id>test3</id>
                                        <name>AGF Development team repository</name>
                                        <url>http://google.com/artifactory/3</url>
                                        <snapshots>
                                                <enabled>false</enabled>
                                        </snapshots>
                                </pluginRepository>
                        </pluginRepositories>
                </profile>
        </profiles>
</settings>





POM.XML

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
        <modelVersion>4.0.0</modelVersion>
        <groupId>foo</groupId>
        <version>1</version>
        <artifactId>barwar</artifactId>
        <packaging>war</packaging>
 
        <properties>
                <axis.version>1.5.1</axis.version>
        </properties>
 
        <build>
                <plugins>
                        <plugin>
                                <artifactId>maven-war-plugin</artifactId>
                                <version>2.2</version>
                                <configuration>
                                        <failOnMissingWebXml>false</failOnMissingWebXml>
                                </configuration>
                        </plugin>
                </plugins>
        </build>
 
 
        <dependencies>
                <dependency>
                        <groupId>batik</groupId>
                        <artifactId>batik-1.5-fop</artifactId>
                        <version>0.20-5</version>
                </dependency>
 
                <dependency>
                        <groupId>batik</groupId>
                        <artifactId>batik-rasterizer</artifactId>
                        <version>1.6-1</version>
                </dependency>
 
                <dependency>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                        <version>2.1</version>
                </dependency>
                <dependency>
                        <groupId>xml-apis</groupId>
                        <artifactId>xml-apis</artifactId>
                        <version>1.3.02</version>
                </dependency>
                <dependency>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty</artifactId>
                        <version>6.1.24</version>
                </dependency>
                <dependency>
                        <groupId>eclipse</groupId>
                        <artifactId>eclipse-ui</artifactId>
                        <version>2.1.0</version>
                </dependency>
                <dependency>
                        <groupId>eclipse</groupId>
                        <artifactId>eclipse-workbench</artifactId>
                        <version>2.1.0</version>
                </dependency>
                <dependency>
                        <groupId>eclipse</groupId>
                        <artifactId>eclipse-jface</artifactId>
                        <version>2.1.0</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <version>2.4</version>
                </dependency>
                <dependency>
                        <groupId>maven</groupId>
                        <artifactId>maven-ear-plugin</artifactId>
                        <version>1.9</version>
                </dependency>
                <dependency>
                        <groupId>tomcat</groupId>
                        <artifactId>tomcat-ajp</artifactId>
                        <version>5.5.23</version>
                </dependency>
 
 
 
 
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-parent</artifactId>
                        <version>${axis.version}</version>
                        <type>pom</type>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-kernel</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-adb</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-ant-plugin</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-clustering</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-corba</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-fastinfoset</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-java2wsdl</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-jaxbri</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-jaxws</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-jibx</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-json</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-metadata</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-mtompolicy</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-saaj</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-spring</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-transport-http</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-transport-local</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>axis2-xmlbeans</artifactId>
                        <version>${axis.version}</version>
                </dependency>
                <dependency>
                        <groupId>org.apache.axis2</groupId>
                        <artifactId>soapmonitor</artifactId>
                        <version>${axis.version}</version>
                        <type>mar</type>
                </dependency>
 
        </dependencies>
</project>



Regards,
Stepan

Back to the top