Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tests fail if there are any connectivity problems #20

Closed
rtyler opened this issue Aug 19, 2014 · 6 comments
Closed

Tests fail if there are any connectivity problems #20

rtyler opened this issue Aug 19, 2014 · 6 comments
Labels

Comments

@rtyler
Copy link
Member

rtyler commented Aug 19, 2014

Looks like the new tests that came along with #16. I'm hoping @ysb33r can take a whack at this.

com.lookout.jruby.JRubyExecSpec > Running a script that requires a gem FAILED
    org.gradle.api.artifacts.ResolveException: Could not resolve all dependencies for configuration ':jrubyExec'.
        at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingArtifactDependencyResolver.wrapException(ErrorHandlingArtifactDependencyResolver.java:61)
        at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingArtifactDependencyResolver.access$000(ErrorHandlingArtifactDependencyResolver.java:35)
        at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingArtifactDependencyResolver$BrokenResolvedConfiguration.rethrowFailure(ErrorHandlingArtifactDependencyResolver.java:237)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:428)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getFiles(DefaultConfiguration.java:202)
        at groovy.lang.MetaBeanProperty.getProperty(MetaBeanProperty.java:57)
        at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.getProperty(BeanDynamicObject.java:153)
        at org.gradle.api.internal.BeanDynamicObject.getProperty(BeanDynamicObject.java:107)
        at org.gradle.api.internal.CompositeDynamicObject.getProperty(CompositeDynamicObject.java:78)
        at com.lookout.jruby.JRubyExec.exec_closure3(JRubyExec.groovy:142)
        at groovy.lang.Closure.call(Closure.java:423)
        at groovy.lang.Closure.call(Closure.java:439)
        at com.lookout.jruby.JRubyExec.exec(JRubyExec.groovy:140)
        at com.lookout.jruby.JRubyExecSpec.Running a script that requires a gem(JRubyExecSpec.groovy:185)

        Caused by:
        org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ArtifactResolveException: Could not determine artifacts for component 'rubygems:credit_card_validator:1.2.0'
            at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingArtifactResolver.resolveModuleArtifacts(ErrorHandlingArtifactResolver.java:42)
            at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.DependencyGraphBuilder$ConfigurationNode.getArtifacts(DependencyGraphBuilder.java:632)
            at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.ResolvedConfigurationDependencyGraphVisitor.getArtifacts(ResolvedConfigurationDependencyGraphVisitor.java:83)
            at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.ResolvedConfigurationDependencyGraphVisitor.attachToParents(ResolvedConfigurationDependencyGraphVisitor.java:72)
            at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.ResolvedConfigurationDependencyGraphVisitor.visitEdge(ResolvedConfigurationDependencyGraphVisitor.java:64)
            at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.CompositeDependencyGraphVisitor.visitEdge(CompositeDependencyGraphVisitor.java:43)
            at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.DependencyGraphBuilder.assembleResult(DependencyGraphBuilder.java:175)
            at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.DependencyGraphBuilder.resolveDependencyGraph(DependencyGraphBuilder.java:84)
            at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.DependencyGraphBuilder.resolve(DependencyGraphBuilder.java:74)
            at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultDependencyResolver$1.execute(DefaultDependencyResolver.java:120)
            at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultDependencyResolver$1.execute(DefaultDependencyResolver.java:86)
            at org.gradle.internal.Transformers$3.transform(Transformers.java:131)
            at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyContextManager.withIvy(DefaultIvyContextManager.java:61)
            at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyContextManager.withIvy(DefaultIvyContextManager.java:39)
            at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultDependencyResolver.resolve(DefaultDependencyResolver.java:86)
            at org.gradle.api.internal.artifacts.ivyservice.CacheLockingArtifactDependencyResolver$1.run(CacheLockingArtifactDependencyResolver.java:42)
            at org.gradle.testfixtures.internal.InMemoryCacheFactory$InMemoryCache.useCache(InMemoryCacheFactory.java:78)
            at org.gradle.api.internal.artifacts.ivyservice.DefaultCacheLockingManager.useCache(DefaultCacheLockingManager.java:63)
            at org.gradle.api.internal.artifacts.ivyservice.CacheLockingArtifactDependencyResolver.resolve(CacheLockingArtifactDependencyResolver.java:40)
            at org.gradle.api.internal.artifacts.ivyservice.SelfResolvingDependencyResolver.resolve(SelfResolvingDependencyResolver.java:45)
            at org.gradle.api.internal.artifacts.ivyservice.ShortcircuitEmptyConfigsArtifactDependencyResolver.resolve(ShortcircuitEmptyConfigsArtifactDependencyResolver.java:55)
            at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingArtifactDependencyResolver.resolve(ErrorHandlingArtifactDependencyResolver.java:47)
            at org.gradle.api.internal.artifacts.ivyservice.DefaultConfigurationResolver.resolve(DefaultConfigurationResolver.java:46)
            at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveNow(DefaultConfiguration.java:240)
            at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getResolvedConfiguration(DefaultConfiguration.java:230)
            at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:426)
            ... 10 more

            Caused by:
            org.gradle.internal.resource.transport.http.HttpRequestException: Could not HEAD 'http://rubygems-proxy.torquebox.org/releases/rubygems/credit_card_validator/1.2.0/credit_card_validator-1.2.0.gem'.
                at org.gradle.internal.resource.transport.http.HttpClientHelper.performRequest(HttpClientHelper.java:80)
                at org.gradle.internal.resource.transport.http.HttpClientHelper.performRawHead(HttpClientHelper.java:58)
                at org.gradle.internal.resource.transport.http.HttpClientHelper.performHead(HttpClientHelper.java:62)
                at org.gradle.internal.resource.transport.http.HttpResourceAccessor.getMetaData(HttpResourceAccessor.java:87)
                at org.gradle.internal.resource.transport.DefaultExternalResourceRepository.getResourceMetaData(DefaultExternalResourceRepository.java:60)
                at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.staticResourceExists(DefaultExternalResourceArtifactResolver.java:74)
                at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.artifactExists(DefaultExternalResourceArtifactResolver.java:65)
                at org.gradle.api.internal.artifacts.repositories.resolver.MavenResolver$MavenRemoteRepositoryAccess.resolveConfigurationArtifacts(MavenResolver.java:216)
                at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver$AbstractRepositoryAccess.resolveModuleArtifacts(ExternalResourceResolver.java:360)
                at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver$RemoteRepositoryAccess.resolveModuleArtifacts(ExternalResourceResolver.java:407)
                at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CacheLockReleasingModuleComponentsRepository$LockReleasingRepositoryAccess$4.run(CacheLockReleasingModuleComponentsRepository.java:79)
                at org.gradle.testfixtures.internal.InMemoryCacheFactory$InMemoryCache.longRunningOperation(InMemoryCacheFactory.java:86)
                at org.gradle.api.internal.artifacts.ivyservice.DefaultCacheLockingManager.longRunningOperation(DefaultCacheLockingManager.java:55)
                at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CacheLockReleasingModuleComponentsRepository$LockReleasingRepositoryAccess.resolveModuleArtifacts(CacheLockReleasingModuleComponentsRepository.java:77)
                at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$ResolveAndCacheRepositoryAccess.resolveModuleArtifacts(CachingModuleComponentRepository.java:310)
                at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.BaseModuleComponentRepositoryAccess.resolveModuleArtifacts(BaseModuleComponentRepositoryAccess.java:45)
                at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainArtifactResolver.resolveModuleArtifacts(RepositoryChainArtifactResolver.java:50)
                at org.gradle.api.internal.artifacts.ivyservice.projectmodule.ProjectArtifactResolver.resolveModuleArtifacts(ProjectArtifactResolver.java:50)
                at org.gradle.api.internal.artifacts.ivyservice.ContextualArtifactResolver$2.execute(ContextualArtifactResolver.java:47)
                at org.gradle.api.internal.artifacts.ivyservice.ContextualArtifactResolver$2.execute(ContextualArtifactResolver.java:45)
                at org.gradle.internal.Transformers$3.transform(Transformers.java:131)
                at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyContextManager.withIvy(DefaultIvyContextManager.java:48)
                at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyContextManager.withIvy(DefaultIvyContextManager.java:39)
                at org.gradle.api.internal.artifacts.ivyservice.ContextualArtifactResolver$4.run(ContextualArtifactResolver.java:63)
                at org.gradle.testfixtures.internal.InMemoryCacheFactory$InMemoryCache.useCache(InMemoryCacheFactory.java:78)
                at org.gradle.api.internal.artifacts.ivyservice.DefaultCacheLockingManager.useCache(DefaultCacheLockingManager.java:63)
                at org.gradle.api.internal.artifacts.ivyservice.ContextualArtifactResolver.executeInContext(ContextualArtifactResolver.java:61)
                at org.gradle.api.internal.artifacts.ivyservice.ContextualArtifactResolver.resolveModuleArtifacts(ContextualArtifactResolver.java:45)
                at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingArtifactResolver.resolveModuleArtifacts(ErrorHandlingArtifactResolver.java:40)
                ... 35 more

                Caused by:
                org.apache.http.conn.HttpHostConnectException: Connection to http://s3.amazonaws.com refused
                    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190)
                    at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
                    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)
                    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
                    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
                    at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:137)
                    at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:118)
                    at org.gradle.internal.resource.transport.http.HttpClientHelper.performHttpRequest(HttpClientHelper.java:111)
                    at org.gradle.internal.resource.transport.http.HttpClientHelper.executeGetOrHead(HttpClientHelper.java:87)
                    at org.gradle.internal.resource.transport.http.HttpClientHelper.performRequest(HttpClientHelper.java:78)
                    ... 63 more

                    Caused by:
                    java.net.ConnectException: Operation timed out
                        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
                        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
                        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
                        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
                        at java.net.Socket.connect(Socket.java:589)
                        at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:127)
                        at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
                        ... 72 more

@rtyler rtyler added the bug label Aug 19, 2014
@rtyler
Copy link
Member Author

rtyler commented Aug 19, 2014

I suppose a question for you @ysb33r would be, is there any reason not to always run the tests as if they are "offline"?

@ysb33r
Copy link
Contributor

ysb33r commented Aug 19, 2014

Some tests need to connect to the internet to download gems as part of the test. When you are testing in an environment that does not have network connectivity run with ./gradlew --offline. Try that to see if it works for now.

(Having said that one test in JRubyPluginTest will still fail - I need to fix that)

@rtyler
Copy link
Member Author

rtyler commented Aug 19, 2014

@ysb33r the --offline flag definitely lets the tests run. Do you think tests passing with --offline is sufficient for a release

@ysb33r
Copy link
Contributor

ysb33r commented Aug 19, 2014

I would say no, but I would also wonder how you could build a released version without network connectivity?

@rtyler
Copy link
Member Author

rtyler commented Aug 19, 2014

@ysb33r I'm getting the above test failure very consistently from my laptop (the one I'm typing these comments from) so I don't think it's an online/offline thing. I'm in the chatroom now if you want to discuss further there

@rtyler rtyler modified the milestones: 2.1.0, 2,2,0 Aug 19, 2014
@ysb33r
Copy link
Contributor

ysb33r commented Aug 19, 2014

I'll give this a bit of think. A good starting point is https://github.com/robfletcher/gradle-compass/blob/master/gradle/integration-tests.gradle.

What I want to avoid is someone building a release without running the integration tests, but I also want to give people to options to skip the integration tests in normal development.

Maybe just allowing something like ./gradlew -PinterTest=0 to skip integration tests can do the trick.

[I'm leaving the option that ./gradlew --offline will avoid integration tests, but that is for the reason that --offline means we are using Gradle without a network connection and as such no network related activities should occur, including looking for repositories].

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

2 participants