can hudson tests assume net connectivity? assume java.net liveness?

2 messages Options
Embed this post
Permalink
Benjamin Shine-2

can hudson tests assume net connectivity? assume java.net liveness?

Reply Threaded More More options
Print post
Permalink
Some javascript/style in this post has been disabled (why?)

I was building hudson while offline today (commuting) and I saw a test failure in MatrixProjectTest. (See log at end of this message.) Investigation revealed that the failure was because I was offline and the test wanted to connect to a maven repository. I had invoked the test with "mvn -o ... " but the -o flag wasn't passed to the maven invoked by the test. 

Would you call this a bug, or is it okay for hudson tests to assume network connectivity? 

There's a similar-but-different issue in MavenBuildTest.testParallelModuleBuild -- that test tries to connect to dev.java.net, which has its own reliability problems.  (stack trace at end of mail) 

Even if the hudson test suite can assume network connectivity, I don't think it's a good idea for it to require a timely response from dev.java.net. 

I'd file a bug, but I can't, because java.net is down. Just wondering if there's a policy here. 

-ben



Test set: hudson.matrix.MatrixProjectTest
-------------------------------------------------------------------------------
Tests run: 7, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 345.145 sec <<< FAILURE!
testBuildAxisInMaven(hudson.matrix.MatrixProjectTest)  Time elapsed: 310.508 sec  <<< FAILURE!
junit.framework.AssertionFailedError: unexpected build status; build log was:
------
Started by upstream project "test0" build number 1
Staging pom.xml
[north] $ mvn --batch-mode -Ddb=mysql -Ddirection=north -Dprop=mysql validate
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - test:test:jar:0.1-SNAPSHOT
[INFO]    task-segment: [validate]
[INFO] ------------------------------------------------------------------------
[INFO] artifact org.jvnet.maven-antrun-extended-plugin:maven-antrun-extended-plugin: checking for updates from m.g.o-public
[WARNING] repository metadata for: 'artifact org.jvnet.maven-antrun-extended-plugin:maven-antrun-extended-plugin' could not be retrieved from repository: m.g.o-public due to an error: Error transferring file
[INFO] Repository 'm.g.o-public' will be blacklisted
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] The plugin 'org.jvnet.maven-antrun-extended-plugin:maven-antrun-extended-plugin' does not exist or no valid version could be found
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 16 seconds
[INFO] Finished at: Mon Oct 12 18:21:29 PDT 2009
[INFO] Final Memory: 2M/79M
[INFO] ------------------------------------------------------------------------
Finished: FAILURE


org.tmatesoft.svn.core.SVNException: svn: timed out waiting for server
svn: OPTIONS request failed on '/svn/hudson'
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:103)
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:87)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:616)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:273)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:261)
        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:516)
        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:98)
        at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1001)
        at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:97)
        at hudson.scm.SubversionSCM$DescriptorImpl.postCredential(SubversionSCM.java:1620)
        at hudson.maven.MavenBuildTest.setJavaNetCredential(MavenBuildTest.java:26)
        at hudson.maven.MavenBuildTest.testParallelModuleBuild(MavenBuildTest.java:82)
Caused by: java.net.SocketTimeoutException: connect timed out
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:525)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550)
        at org.tmatesoft.svn.core.internal.util.SVNSocketConnection.run(SVNSocketConnection.java:57)
        at java.lang.Thread.run(Thread.java:619)

Kohsuke Kawaguchi

Re: can hudson tests assume net connectivity? assume java.net liveness?

Reply Threaded More More options
Print post
Permalink
Benjamin Shine wrote:

> I was building hudson while offline today (commuting) and I saw a test  
> failure in MatrixProjectTest. (See log at end of this message.)  
> Investigation revealed that the failure was because I was offline and  
> the test wanted to connect to a maven repository. I had invoked the  
> test with "mvn -o ... " but the -o flag wasn't passed to the maven  
> invoked by the test.
>
> Would you call this a bug, or is it okay for hudson tests to assume  
> network connectivity?
>
> There's a similar-but-different issue in  
> MavenBuildTest.testParallelModuleBuild -- that test tries to connect  
> to dev.java.net, which has its own reliability problems.  (stack trace  
> at end of mail)
>
> Even if the hudson test suite can assume network connectivity, I don't  
> think it's a good idea for it to require a timely response from  
> dev.java.net.
>
> I'd file a bug, but I can't, because java.net is down. Just wondering  
> if there's a policy here.
Yeah, I think in general we try to avoid java.net dependency in the
test, but I don't think we can completely eliminate them (for example,
update center test.)

The ones you saw we might be able to remove.


> -ben
>
>
>
> Test set: hudson.matrix.MatrixProjectTest
> -------------------------------------------------------------------------------
> Tests run: 7, Failures: 1, Errors: 0, Skipped: 0, Time elapsed:  
> 345.145 sec <<< FAILURE!
> testBuildAxisInMaven(hudson.matrix.MatrixProjectTest)  Time elapsed:  
> 310.508 sec  <<< FAILURE!
> junit.framework.AssertionFailedError: unexpected build status; build  
> log was:
> ------
> Started by upstream project "test0" build number 1
> Staging pom.xml
> [north] $ mvn --batch-mode -Ddb=mysql -Ddirection=north -Dprop=mysql  
> validate
> [INFO] Scanning for projects...
> [INFO]  
> ------------------------------------------------------------------------
> [INFO] Building Unnamed - test:test:jar:0.1-SNAPSHOT
> [INFO]    task-segment: [validate]
> [INFO]  
> ------------------------------------------------------------------------
> [INFO] artifact org.jvnet.maven-antrun-extended-plugin:maven-antrun-
> extended-plugin: checking for updates from m.g.o-public
> [WARNING] repository metadata for: 'artifact org.jvnet.maven-antrun-
> extended-plugin:maven-antrun-extended-plugin' could not be retrieved  
> from repository: m.g.o-public due to an error: Error transferring file
> [INFO] Repository 'm.g.o-public' will be blacklisted
> [INFO]  
> ------------------------------------------------------------------------
> [ERROR] BUILD ERROR
> [INFO]  
> ------------------------------------------------------------------------
> [INFO] The plugin 'org.jvnet.maven-antrun-extended-plugin:maven-antrun-
> extended-plugin' does not exist or no valid version could be found
> [INFO]  
> ------------------------------------------------------------------------
> [INFO] For more information, run Maven with the -e switch
> [INFO]  
> ------------------------------------------------------------------------
> [INFO] Total time: 1 minute 16 seconds
> [INFO] Finished at: Mon Oct 12 18:21:29 PDT 2009
> [INFO] Final Memory: 2M/79M
> [INFO]  
> ------------------------------------------------------------------------
> Finished: FAILURE
>
>
> org.tmatesoft.svn.core.SVNException: svn: timed out waiting for server
> svn: OPTIONS request failed on '/svn/hudson'
>          at  
> org
> .tmatesoft
> .svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:103)
>          at  
> org
> .tmatesoft
> .svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:87)
>          at  
> org
> .tmatesoft
> .svn
> .core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:
> 616)
>          at  
> org
> .tmatesoft
> .svn
> .core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:
> 273)
>          at  
> org
> .tmatesoft
> .svn
> .core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:
> 261)
>          at  
> org
> .tmatesoft
> .svn
> .core
> .internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:
> 516)
>          at  
> org
> .tmatesoft
> .svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:98)
>          at  
> org
> .tmatesoft
> .svn
> .core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:
> 1001)
>          at  
> org
> .tmatesoft
> .svn
> .core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:
> 97)
>          at hudson.scm.SubversionSCM
> $DescriptorImpl.postCredential(SubversionSCM.java:1620)
>          at  
> hudson.maven.MavenBuildTest.setJavaNetCredential(MavenBuildTest.java:26)
>          at  
> hudson
> .maven.MavenBuildTest.testParallelModuleBuild(MavenBuildTest.java:82)
> Caused by: java.net.SocketTimeoutException: connect timed out
>          at java.net.PlainSocketImpl.socketConnect(Native Method)
>          at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
>          at  
> java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
>          at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
>          at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
>          at java.net.Socket.connect(Socket.java:525)
>          at  
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:
> 550)
>          at  
> org
> .tmatesoft
> .svn
> .core.internal.util.SVNSocketConnection.run(SVNSocketConnection.java:57)
>          at java.lang.Thread.run(Thread.java:619)
>
>

--
Kohsuke Kawaguchi
Sun Microsystems                   http://weblogs.java.net/blog/kohsuke/


smime.p7s (4K) Download Attachment