|
@@ -82,6 +82,7 @@ import java.util.Map;
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
import java.util.concurrent.ExecutionException;
|
|
import java.util.concurrent.ExecutionException;
|
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
import static org.apache.commons.lang3.StringUtils.isEmpty;
|
|
import static org.apache.commons.lang3.StringUtils.isEmpty;
|
|
import static org.apache.hadoop.fs.s3a.Constants.*;
|
|
import static org.apache.hadoop.fs.s3a.Constants.*;
|
|
@@ -1284,6 +1285,15 @@ public final class S3AUtils {
|
|
DEFAULT_SOCKET_SEND_BUFFER, 2048);
|
|
DEFAULT_SOCKET_SEND_BUFFER, 2048);
|
|
int sockRecvBuffer = intOption(conf, SOCKET_RECV_BUFFER,
|
|
int sockRecvBuffer = intOption(conf, SOCKET_RECV_BUFFER,
|
|
DEFAULT_SOCKET_RECV_BUFFER, 2048);
|
|
DEFAULT_SOCKET_RECV_BUFFER, 2048);
|
|
|
|
+ long requestTimeoutMillis = conf.getTimeDuration(REQUEST_TIMEOUT,
|
|
|
|
+ DEFAULT_REQUEST_TIMEOUT, TimeUnit.SECONDS, TimeUnit.MILLISECONDS);
|
|
|
|
+
|
|
|
|
+ if (requestTimeoutMillis > Integer.MAX_VALUE) {
|
|
|
|
+ LOG.debug("Request timeout is too high({} ms). Setting to {} ms instead",
|
|
|
|
+ requestTimeoutMillis, Integer.MAX_VALUE);
|
|
|
|
+ requestTimeoutMillis = Integer.MAX_VALUE;
|
|
|
|
+ }
|
|
|
|
+ awsConf.setRequestTimeout((int) requestTimeoutMillis);
|
|
awsConf.setSocketBufferSizeHints(sockSendBuffer, sockRecvBuffer);
|
|
awsConf.setSocketBufferSizeHints(sockSendBuffer, sockRecvBuffer);
|
|
String signerOverride = conf.getTrimmed(SIGNING_ALGORITHM, "");
|
|
String signerOverride = conf.getTrimmed(SIGNING_ALGORITHM, "");
|
|
if (!signerOverride.isEmpty()) {
|
|
if (!signerOverride.isEmpty()) {
|