Zoran Rajic created HADOOP-12753:
------------------------------------

             Summary: S3A jUnit tests failing if using HTTP proxy
                 Key: HADOOP-12753
                 URL: https://issues.apache.org/jira/browse/HADOOP-12753
             Project: Hadoop Common
          Issue Type: Sub-task
          Components: fs/s3
    Affects Versions: 2.7.2
         Environment: Test hardware:
* issue identified while running jUnit tests on MacBook Pro

PREREQUISITE:
* have a functional HTTP proxy running (ie. SQUID HTTP proxy @ 
http://127.0.0.1:3128)

* S3A test configuration (relevant options):
    <!-- NOTE: by not specifying endpoint, we'll use the default AWS S3 -->
    <property>
        <name>fs.s3a.endpoint</name>
        <value></value>
    </property>
    <!-- NOTE: please configure functional HTTP proxy with 
fs.s3a.proxy.{host,port} -->
    <property>
        <name>fs.s3a.proxy.host</name>
        <value>127.0.0.1</value>
    </property>
    <property>
        <name>fs.s3a.proxy.port</name>
        <value>3128</value>
    </property>
    <property>
        <name>fs.s3a.access.key</name>
        <value>_REAL_AWS_S3_ACCESS_KEY</value>
    </property>
    <property>
        <name>fs.s3a.secret.key</name>
        <value>_REAL_AWS_S3_SECRET_KEY</value>
    </property>
            Reporter: Zoran Rajic
            Priority: Minor


Some companies have restricted firewalls and don't allow the "direct access" to 
Web-pages or Internet, so their employees have to use the SOCKS or the HTTP 
proxy.

This also means that the engineers who develop and test the Hadoop code and 
s3a:// -filesystem inside the company firewalls, need to access the "external" 
Amazon S3 service via the HTTP proxy.

Unfortunately, there are S3A jUnit test failures when run with the HTTP proxy 
(see Environment field above).

--

Details:
* steps to reproduce:

    cd hadoop_git/hadoop-tools/hadoop-aws

    mvn clean test -Dtest=TestS3AConfiguration
    [...]
    Running org.apache.hadoop.fs.s3a.TestS3AConfiguration
    Tests run: 5, Failures: 1, Errors: 1, Skipped: 0, Time elapsed: 2.737 sec 
<<< FAILURE! - in org.apache.hadoop.fs.s3a.TestS3AConfiguration
    
TestAutomaticProxyPortSelection(org.apache.hadoop.fs.s3a.TestS3AConfiguration)  
Time elapsed: 0.737 sec  <<< FAILURE!
    java.lang.AssertionError: Expected a connection error for proxy server
            at org.junit.Assert.fail(Assert.java:88)
            at 
org.apache.hadoop.fs.s3a.TestS3AConfiguration.TestAutomaticProxyPortSelection(TestS3AConfiguration.java:130)

    TestProxyPortWithoutHost(org.apache.hadoop.fs.s3a.TestS3AConfiguration)  
Time elapsed: 0.624 sec  <<< ERROR!
    com.amazonaws.AmazonClientException: Unable to execute HTTP request: 
Connection to http://127.0.0.1:1 refused
            at java.net.PlainSocketImpl.socketConnect(Native Method)
            at 
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
            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)
            at 
org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
            at 
org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:643)
            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.AbstractHttpClient.execute(AbstractHttpClient.java:805)
            at 
com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:384)
            at 
com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:232)
            at 
com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3528)
            at 
com.amazonaws.services.s3.AmazonS3Client.headBucket(AmazonS3Client.java:1031)
            at 
com.amazonaws.services.s3.AmazonS3Client.doesBucketExist(AmazonS3Client.java:994)
            at 
org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:297)
            at 
org.apache.hadoop.fs.s3a.S3ATestUtils.createTestFileSystem(S3ATestUtils.java:51)
            at 
org.apache.hadoop.fs.s3a.TestS3AConfiguration.TestProxyPortWithoutHost(TestS3AConfiguration.java:111)


    Results :

    Failed tests:
    TestS3AConfiguration.TestAutomaticProxyPortSelection:130 Expected a 
connection error for proxy server

    Tests in error:
    TestS3AConfiguration.TestProxyPortWithoutHost:111 ยป AmazonClient Unable to 
exe...

    Tests run: 5, Failures: 1, Errors: 1, Skipped: 0



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to