Skip to content

Commit ebe71f9

Browse files
authored
Revert "Set read timeout for fetching IMDSv2 token" (#104397)
1 parent a014e6b commit ebe71f9

File tree

4 files changed

+2
-34
lines changed

4 files changed

+2
-34
lines changed

docs/changelog/104253.yaml

Lines changed: 0 additions & 6 deletions
This file was deleted.

plugins/discovery-ec2/build.gradle

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,6 @@ tasks.named("test").configure {
102102
} else {
103103
nonInputProperties.systemProperty 'java.security.policy', "file://${buildDir}/tmp/java.policy"
104104
}
105-
if (BuildParams.random.nextBoolean()) {
106-
env 'AWS_METADATA_SERVICE_TIMEOUT', '1'
107-
}
108105
}
109106

110107
tasks.named("check").configure {

plugins/discovery-ec2/src/main/java/org/elasticsearch/discovery/ec2/AwsEc2Utils.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88

99
package org.elasticsearch.discovery.ec2;
1010

11-
import com.amazonaws.SDKGlobalConfiguration;
12-
import com.amazonaws.util.StringUtils;
13-
1411
import org.apache.logging.log4j.LogManager;
1512
import org.apache.logging.log4j.Logger;
1613
import org.elasticsearch.common.Strings;
@@ -27,11 +24,7 @@
2724
class AwsEc2Utils {
2825

2926
private static final Logger logger = LogManager.getLogger(AwsEc2Utils.class);
30-
// The timeout can be configured via the AWS_METADATA_SERVICE_TIMEOUT environment variable
31-
private static final int TIMEOUT = Optional.ofNullable(System.getenv(SDKGlobalConfiguration.AWS_METADATA_SERVICE_TIMEOUT_ENV_VAR))
32-
.filter(StringUtils::hasValue)
33-
.map(s -> Integer.parseInt(s) * 1000)
34-
.orElse(2000);
27+
private static final int CONNECT_TIMEOUT = 2000;
3528
private static final int METADATA_TOKEN_TTL_SECONDS = 10;
3629
static final String X_AWS_EC_2_METADATA_TOKEN = "X-aws-ec2-metadata-token";
3730

@@ -46,10 +39,7 @@ static Optional<String> getMetadataToken(String metadataTokenUrl) {
4639
try {
4740
urlConnection = (HttpURLConnection) new URL(metadataTokenUrl).openConnection();
4841
urlConnection.setRequestMethod("PUT");
49-
// Use both timeout for connect and read timeout analogous to AWS SDK.
50-
// See com.amazonaws.internal.HttpURLConnection#connectToEndpoint
51-
urlConnection.setConnectTimeout(TIMEOUT);
52-
urlConnection.setReadTimeout(TIMEOUT);
42+
urlConnection.setConnectTimeout(CONNECT_TIMEOUT);
5343
urlConnection.setRequestProperty("X-aws-ec2-metadata-token-ttl-seconds", String.valueOf(METADATA_TOKEN_TTL_SECONDS));
5444
} catch (IOException e) {
5545
logger.warn("Unable to access the IMDSv2 URI: " + metadataTokenUrl, e);

plugins/discovery-ec2/src/test/java/org/elasticsearch/discovery/ec2/Ec2DiscoveryPluginTests.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -121,19 +121,6 @@ public void testTokenMetadataApiIsMisbehaving() throws Exception {
121121
}
122122
}
123123

124-
public void testTokenMetadataApiDoesNotRespond() throws Exception {
125-
try (var metadataServer = new MetadataServer("/metadata", exchange -> {
126-
assertNull(exchange.getRequestHeaders().getFirst("X-aws-ec2-metadata-token"));
127-
exchange.sendResponseHeaders(200, 0);
128-
exchange.getResponseBody().write("us-east-1c".getBytes(StandardCharsets.UTF_8));
129-
exchange.close();
130-
}, "/latest/api/token", ex -> {
131-
// Intentionally don't close the connection, so the client has to time out
132-
})) {
133-
assertNodeAttributes(Settings.EMPTY, metadataServer.metadataUri(), metadataServer.tokenUri(), "us-east-1c");
134-
}
135-
}
136-
137124
public void testTokenMetadataApiIsNotAvailable() throws Exception {
138125
try (var metadataServer = metadataServerWithoutToken()) {
139126
assertNodeAttributes(Settings.EMPTY, metadataServer.metadataUri(), metadataServer.tokenUri(), "us-east-1c");

0 commit comments

Comments
 (0)