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

UrlConnectionHttpClient never works #941

Closed
caiiiycuk opened this issue Dec 9, 2018 · 4 comments
Closed

UrlConnectionHttpClient never works #941

caiiiycuk opened this issue Dec 9, 2018 · 4 comments
Labels
bug This issue is a bug. investigating This issue is being investigated and/or work is in progress to resolve the issue.

Comments

@caiiiycuk
Copy link

I am intrested to use UrlConnectionHttpClient in my project, because it startup time is minimal. But it never works even in test examples.
How to reproduce:
Clone repo with examples:
https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javav2

Open s3 project, and add dependency:

    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>url-connection-client</artifactId>
    </dependency>

Then in class S3ObjectOperations, configure S3Client to use UrlConnectionHttpClient:

s3 = S3Client.builder().region(region).httpClient(UrlConnectionHttpClient.builder().build()).build();

Run example S3ObjectOperations.

Expected Behavior

Example should run, and finish without any problem

Current Behavior

Example stucks forever, each time. It never finish for me. It works for example with Netty client.

Logs:

/usr/lib/jvm/java-8-openjdk-amd64/bin/java -javaagent:/home/caiiiycuk/ide/toolbox/apps/IDEA-C/ch-0/183.4886.3/lib/idea_rt.jar=43781:/home/caiiiycuk/ide/toolbox/apps/IDEA-C/ch-0/183.4886.3/bin -Dfile.encoding=UTF-8 -classpath /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/charsets.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/cldrdata.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/dnsns.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/icedtea-sound.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/jaccess.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/java-atk-wrapper.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/localedata.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/nashorn.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/sunec.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/sunjce_provider.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/zipfs.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jce.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jsse.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/management-agent.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/resources.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar:/home/caiiiycuk/aws/s3/target/classes:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/s3/2.1.4/s3-2.1.4.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/aws-xml-protocol/2.1.4/aws-xml-protocol-2.1.4.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/aws-query-protocol/2.1.4/aws-query-protocol-2.1.4.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/protocol-core/2.1.4/protocol-core-2.1.4.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/sdk-core/2.1.4/sdk-core-2.1.4.jar:/home/caiiiycuk/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9.7/jackson-core-2.9.7.jar:/home/caiiiycuk/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.9.7/jackson-databind-2.9.7.jar:/home/caiiiycuk/.m2/repository/org/reactivestreams/reactive-streams/1.0.2/reactive-streams-1.0.2.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/auth/2.1.4/auth-2.1.4.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/profiles/2.1.4/profiles-2.1.4.jar:/home/caiiiycuk/.m2/repository/software/amazon/flow/1.7/flow-1.7.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/http-client-spi/2.1.4/http-client-spi-2.1.4.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/regions/2.1.4/regions-2.1.4.jar:/home/caiiiycuk/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.9.7/jackson-annotations-2.9.7.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/annotations/2.1.4/annotations-2.1.4.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/utils/2.1.4/utils-2.1.4.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/aws-core/2.1.4/aws-core-2.1.4.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/apache-client/2.1.4/apache-client-2.1.4.jar:/home/caiiiycuk/.m2/repository/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar:/home/caiiiycuk/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar:/home/caiiiycuk/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/home/caiiiycuk/.m2/repository/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/netty-nio-client/2.1.4/netty-nio-client-2.1.4.jar:/home/caiiiycuk/.m2/repository/io/netty/netty-codec-http/4.1.32.Final/netty-codec-http-4.1.32.Final.jar:/home/caiiiycuk/.m2/repository/io/netty/netty-codec-http2/4.1.32.Final/netty-codec-http2-4.1.32.Final.jar:/home/caiiiycuk/.m2/repository/io/netty/netty-codec/4.1.32.Final/netty-codec-4.1.32.Final.jar:/home/caiiiycuk/.m2/repository/io/netty/netty-transport/4.1.32.Final/netty-transport-4.1.32.Final.jar:/home/caiiiycuk/.m2/repository/io/netty/netty-resolver/4.1.32.Final/netty-resolver-4.1.32.Final.jar:/home/caiiiycuk/.m2/repository/io/netty/netty-common/4.1.32.Final/netty-common-4.1.32.Final.jar:/home/caiiiycuk/.m2/repository/io/netty/netty-buffer/4.1.32.Final/netty-buffer-4.1.32.Final.jar:/home/caiiiycuk/.m2/repository/io/netty/netty-handler/4.1.32.Final/netty-handler-4.1.32.Final.jar:/home/caiiiycuk/.m2/repository/io/netty/netty-transport-native-epoll/4.1.32.Final/netty-transport-native-epoll-4.1.32.Final-linux-x86_64.jar:/home/caiiiycuk/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.32.Final/netty-transport-native-unix-common-4.1.32.Final.jar:/home/caiiiycuk/.m2/repository/com/typesafe/netty/netty-reactive-streams-http/2.0.0/netty-reactive-streams-http-2.0.0.jar:/home/caiiiycuk/.m2/repository/com/typesafe/netty/netty-reactive-streams/2.0.0/netty-reactive-streams-2.0.0.jar:/home/caiiiycuk/.m2/repository/software/amazon/awssdk/url-connection-client/2.1.4/url-connection-client-2.1.4.jar:/home/caiiiycuk/.m2/repository/org/slf4j/slf4j-simple/1.7.25/slf4j-simple-1.7.25.jar:/home/caiiiycuk/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar com.example.s3.S3ObjectOperations
425 [main] DEBUG software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain - Unable to load credentials from SystemPropertyCredentialsProvider(): Unable to load credentials from system settings. Access key must be specified either via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId).
software.amazon.awssdk.core.exception.SdkClientException: Unable to load credentials from system settings. Access key must be specified either via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId).
	at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:97)
	at software.amazon.awssdk.auth.credentials.internal.SystemSettingsCredentialsProvider.resolveCredentials(SystemSettingsCredentialsProvider.java:58)
	at software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain.resolveCredentials(AwsCredentialsProviderChain.java:91)
	at software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider.resolveCredentials(DefaultCredentialsProvider.java:92)
	at software.amazon.awssdk.awscore.client.handler.AwsClientHandlerUtils.createExecutionContext(AwsClientHandlerUtils.java:70)
	at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.createExecutionContext(AwsSyncClientHandler.java:68)
	at software.amazon.awssdk.core.client.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:68)
	at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:44)
	at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:55)
	at software.amazon.awssdk.services.s3.DefaultS3Client.createBucket(DefaultS3Client.java:452)
	at com.example.s3.S3ObjectOperations.createBucket(S3ObjectOperations.java:136)
	at com.example.s3.S3ObjectOperations.main(S3ObjectOperations.java:62)
432 [main] DEBUG software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain - Unable to load credentials from EnvironmentVariableCredentialsProvider(): Unable to load credentials from system settings. Access key must be specified either via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId).
software.amazon.awssdk.core.exception.SdkClientException: Unable to load credentials from system settings. Access key must be specified either via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId).
	at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:97)
	at software.amazon.awssdk.auth.credentials.internal.SystemSettingsCredentialsProvider.resolveCredentials(SystemSettingsCredentialsProvider.java:58)
	at software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain.resolveCredentials(AwsCredentialsProviderChain.java:91)
	at software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider.resolveCredentials(DefaultCredentialsProvider.java:92)
	at software.amazon.awssdk.awscore.client.handler.AwsClientHandlerUtils.createExecutionContext(AwsClientHandlerUtils.java:70)
	at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.createExecutionContext(AwsSyncClientHandler.java:68)
	at software.amazon.awssdk.core.client.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:68)
	at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:44)
	at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:55)
	at software.amazon.awssdk.services.s3.DefaultS3Client.createBucket(DefaultS3Client.java:452)
	at com.example.s3.S3ObjectOperations.createBucket(S3ObjectOperations.java:136)
	at com.example.s3.S3ObjectOperations.main(S3ObjectOperations.java:62)
439 [main] DEBUG software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain - Loading credentials from ProfileCredentialsProvider(profileName=default, profileFile=ProfileFile(profiles=[Profile(name=default, properties=[aws_access_key_id, aws_secret_access_key])]))
442 [main] DEBUG software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Creating an interceptor chain that will apply interceptors in the following order: [software.amazon.awssdk.services.s3.internal.handlers.EndpointAddressInterceptor@770c2e6b, software.amazon.awssdk.services.s3.internal.handlers.CreateBucketInterceptor@1a052a00, software.amazon.awssdk.services.s3.internal.handlers.PutObjectInterceptor@4d826d77, software.amazon.awssdk.services.s3.internal.handlers.CreateMultipartUploadRequestInterceptor@61009542, software.amazon.awssdk.services.s3.internal.handlers.EnableChunkedEncodingInterceptor@77e9807f, software.amazon.awssdk.services.s3.internal.handlers.DisableDoubleUrlEncodingInterceptor@448ff1a8, software.amazon.awssdk.services.s3.internal.handlers.DecodeUrlEncodedResponseInterceptor@1a38c59b, software.amazon.awssdk.services.s3.internal.handlers.AddContentMd5HeaderInterceptor@7f77e91b, software.amazon.awssdk.services.s3.internal.handlers.GetBucketPolicyInterceptor@44a664f2, software.amazon.awssdk.services.s3.internal.handlers.AsyncChecksumValidationInterceptor@7f9fcf7f, software.amazon.awssdk.services.s3.internal.handlers.SyncChecksumValidationInterceptor@2357d90a, software.amazon.awssdk.services.s3.internal.handlers.EnableTrailingChecksumInterceptor@6328d34a, software.amazon.awssdk.services.s3.internal.handlers.ExceptionTranslationInterceptor@145eaa29]
515 [main] DEBUG software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Interceptor 'software.amazon.awssdk.services.s3.internal.handlers.EndpointAddressInterceptor@770c2e6b' modified the message with its modifyHttpRequest method.
517 [main] TRACE software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Old: DefaultSdkHttpFullRequest(httpMethod=PUT, protocol=https, host=s3.us-west-2.amazonaws.com, encodedPath=/bucket1544361600559, headers=[Content-Length, Content-Type], queryParameters=[])
New: DefaultSdkHttpFullRequest(httpMethod=PUT, protocol=https, host=bucket1544361600559.s3.us-west-2.amazonaws.com, port=443, encodedPath=, headers=[Content-Length, Content-Type], queryParameters=[])
525 [main] DEBUG software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Interceptor 'software.amazon.awssdk.services.s3.internal.handlers.AddContentMd5HeaderInterceptor@7f77e91b' modified the message with its modifyHttpRequest method.
525 [main] TRACE software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Old: DefaultSdkHttpFullRequest(httpMethod=PUT, protocol=https, host=bucket1544361600559.s3.us-west-2.amazonaws.com, port=443, encodedPath=, headers=[Content-Length, Content-Type], queryParameters=[])
New: DefaultSdkHttpFullRequest(httpMethod=PUT, protocol=https, host=bucket1544361600559.s3.us-west-2.amazonaws.com, port=443, encodedPath=, headers=[Content-Length, Content-MD5, Content-Type], queryParameters=[])
561 [main] DEBUG software.amazon.awssdk.request - Sending Request: DefaultSdkHttpFullRequest(httpMethod=PUT, protocol=https, host=bucket1544361600559.s3.us-west-2.amazonaws.com, port=443, encodedPath=, headers=[amz-sdk-invocation-id, Content-Length, Content-MD5, Content-Type, User-Agent], queryParameters=[])
587 [main] TRACE software.amazon.awssdk.auth.signer.Aws4Signer - AWS4 Canonical Request: PUT
/

amz-sdk-invocation-id:ce08f54b-6d9b-3be8-471e-fab884595a66
amz-sdk-retry:0/0/500
content-length:191
content-md5:prkTkWFy/I6rK4LyxMVYQw==
content-type:application/xml
host:bucket1544361600559.s3.us-west-2.amazonaws.com
x-amz-content-sha256:UNSIGNED-PAYLOAD
x-amz-date:20181209T132000Z

amz-sdk-invocation-id;amz-sdk-retry;content-length;content-md5;content-type;host;x-amz-content-sha256;x-amz-date
UNSIGNED-PAYLOAD
588 [main] DEBUG software.amazon.awssdk.auth.signer.Aws4Signer - AWS4 String to sign: AWS4-HMAC-SHA256
20181209T132000Z
20181209/us-west-2/s3/aws4_request
456595864855e38383e810134257b5142fa7cdcac7c8a369c78293da0298ec34
591 [main] TRACE software.amazon.awssdk.auth.signer.Aws4Signer - Generating a new signing key as the signing key not available in the cache for the date: 1544313600000
3545 [main] DEBUG software.amazon.awssdk.request - Received successful response: 200
3550 [main] TRACE software.amazon.awssdk.request - Parsing service response XML.
3557 [main] TRACE software.amazon.awssdk.request - Done parsing service response.
bucket1544361600559
3588 [main] DEBUG software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Creating an interceptor chain that will apply interceptors in the following order: [software.amazon.awssdk.services.s3.internal.handlers.EndpointAddressInterceptor@770c2e6b, software.amazon.awssdk.services.s3.internal.handlers.CreateBucketInterceptor@1a052a00, software.amazon.awssdk.services.s3.internal.handlers.PutObjectInterceptor@4d826d77, software.amazon.awssdk.services.s3.internal.handlers.CreateMultipartUploadRequestInterceptor@61009542, software.amazon.awssdk.services.s3.internal.handlers.EnableChunkedEncodingInterceptor@77e9807f, software.amazon.awssdk.services.s3.internal.handlers.DisableDoubleUrlEncodingInterceptor@448ff1a8, software.amazon.awssdk.services.s3.internal.handlers.DecodeUrlEncodedResponseInterceptor@1a38c59b, software.amazon.awssdk.services.s3.internal.handlers.AddContentMd5HeaderInterceptor@7f77e91b, software.amazon.awssdk.services.s3.internal.handlers.GetBucketPolicyInterceptor@44a664f2, software.amazon.awssdk.services.s3.internal.handlers.AsyncChecksumValidationInterceptor@7f9fcf7f, software.amazon.awssdk.services.s3.internal.handlers.SyncChecksumValidationInterceptor@2357d90a, software.amazon.awssdk.services.s3.internal.handlers.EnableTrailingChecksumInterceptor@6328d34a, software.amazon.awssdk.services.s3.internal.handlers.ExceptionTranslationInterceptor@145eaa29]
3589 [main] DEBUG software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Interceptor 'software.amazon.awssdk.services.s3.internal.handlers.EndpointAddressInterceptor@770c2e6b' modified the message with its modifyHttpRequest method.
3589 [main] TRACE software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Old: DefaultSdkHttpFullRequest(httpMethod=PUT, protocol=https, host=s3.us-west-2.amazonaws.com, encodedPath=/bucket1544361600559/key, headers=[Content-Length, Content-Type], queryParameters=[])
New: DefaultSdkHttpFullRequest(httpMethod=PUT, protocol=https, host=bucket1544361600559.s3.us-west-2.amazonaws.com, port=443, encodedPath=/key, headers=[Content-Length, Content-Type], queryParameters=[])
3589 [main] DEBUG software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Interceptor 'software.amazon.awssdk.services.s3.internal.handlers.PutObjectInterceptor@4d826d77' modified the message with its modifyHttpRequest method.
3589 [main] TRACE software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Old: DefaultSdkHttpFullRequest(httpMethod=PUT, protocol=https, host=bucket1544361600559.s3.us-west-2.amazonaws.com, port=443, encodedPath=/key, headers=[Content-Length, Content-Type], queryParameters=[])
New: DefaultSdkHttpFullRequest(httpMethod=PUT, protocol=https, host=bucket1544361600559.s3.us-west-2.amazonaws.com, port=443, encodedPath=/key, headers=[Content-Length, Content-Type, Expect], queryParameters=[])
3591 [main] DEBUG software.amazon.awssdk.request - Sending Request: DefaultSdkHttpFullRequest(httpMethod=PUT, protocol=https, host=bucket1544361600559.s3.us-west-2.amazonaws.com, port=443, encodedPath=/key, headers=[amz-sdk-invocation-id, Content-Length, Content-Type, Expect, User-Agent], queryParameters=[])
3592 [main] TRACE software.amazon.awssdk.auth.signer.Aws4Signer - AWS4 Canonical Request: PUT
/key

amz-sdk-invocation-id:2bd37332-a64d-5aef-a4f1-83e15dc8b4b2
amz-sdk-retry:0/0/500
content-length:10000
content-type:application/octet-stream
host:bucket1544361600559.s3.us-west-2.amazonaws.com
x-amz-content-sha256:UNSIGNED-PAYLOAD
x-amz-date:20181209T132003Z

amz-sdk-invocation-id;amz-sdk-retry;content-length;content-type;host;x-amz-content-sha256;x-amz-date
UNSIGNED-PAYLOAD
3592 [main] DEBUG software.amazon.awssdk.auth.signer.Aws4Signer - AWS4 String to sign: AWS4-HMAC-SHA256
20181209T132003Z
20181209/us-west-2/s3/aws4_request
bb47162e76dc7126b8a087170caf21d095e7a888f929e6fc1b1f9f69120e716a

Environment

  • AWS Java SDK version used:
    2.1.4
  • JDK version used:
    openjdk 10.0.2 2018-07-17
    OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.4)
    OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.4, mixed mode)
  • Operating System and version:
    LSB Version: core-9.20170808ubuntu1-noarch:printing-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
    Distributor ID: Ubuntu
    Description: Ubuntu 18.04.1 LTS
    Release: 18.04
    Codename: bionic
@varunnvs92 varunnvs92 added bug This issue is a bug. investigating This issue is being investigated and/or work is in progress to resolve the issue. labels Dec 10, 2018
@varunnvs92
Copy link
Contributor

Thanks for reporting the bug. This is fixed in #942 and will be released this week.

aws-sdk-java-automation pushed a commit that referenced this issue Aug 28, 2020
Revert "Updated endpoint discovery behavior for operations that requi…
@Samrose-Ahmed
Copy link

Was there a regression, i still see this issue with latest SDK.

@debora-ito
Copy link
Member

@Samrose-Ahmed can you open a fresh new issue?

@Samrose-Ahmed
Copy link

Created #2870

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug This issue is a bug. investigating This issue is being investigated and/or work is in progress to resolve the issue.
Projects
None yet
Development

No branches or pull requests

4 participants