You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2021/01/06 14:44:13 UTC
[incubator-doris] branch master updated: [Function] Add timeout of
connection when downloading the function objectFile from URL (#5135)
This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new 65d33cf [Function] Add timeout of connection when downloading the function objectFile from URL (#5135)
65d33cf is described below
commit 65d33cf43c837e56a2a36e78b358bfc0a9d1916b
Author: caiconghui <55...@users.noreply.github.com>
AuthorDate: Wed Jan 6 22:43:52 2021 +0800
[Function] Add timeout of connection when downloading the function objectFile from URL (#5135)
Co-authored-by: caiconghui [蔡聪辉] <ca...@xiaomi.com>
---
.../apache/doris/analysis/CreateFunctionStmt.java | 35 +++++++++++-----------
1 file changed, 18 insertions(+), 17 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateFunctionStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateFunctionStmt.java
index 4b31a82..2a4f7ab 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateFunctionStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CreateFunctionStmt.java
@@ -26,6 +26,7 @@ import org.apache.doris.common.ErrorCode;
import org.apache.doris.common.ErrorReport;
import org.apache.doris.common.FeConstants;
import org.apache.doris.common.UserException;
+import org.apache.doris.common.util.Util;
import org.apache.doris.mysql.privilege.PrivPredicate;
import org.apache.doris.qe.ConnectContext;
@@ -36,8 +37,6 @@ import org.apache.commons.codec.binary.Hex;
import java.io.IOException;
import java.io.InputStream;
-import java.net.URL;
-import java.net.URLConnection;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Map;
@@ -69,6 +68,9 @@ public class CreateFunctionStmt extends DdlStmt {
private Function function;
private String checksum;
+ // timeout for both connection and read. 10 seconds is long enough.
+ private static final int HTTP_TIMEOUT_MS = 10000;
+
public CreateFunctionStmt(boolean isAggregate, FunctionName functionName, FunctionArgsDef argsDef,
TypeDef returnType, TypeDef intermediateType, Map<String, String> properties) {
this.functionName = functionName;
@@ -139,22 +141,21 @@ public class CreateFunctionStmt extends DdlStmt {
checksum = "";
return;
}
- URL url = new URL(objectFile);
- URLConnection urlConnection = url.openConnection();
- InputStream inputStream = urlConnection.getInputStream();
-
- MessageDigest digest = MessageDigest.getInstance("MD5");
- byte[] buf = new byte[4096];
- int bytesRead = 0;
- do {
- bytesRead = inputStream.read(buf);
- if (bytesRead < 0) {
- break;
- }
- digest.update(buf, 0, bytesRead);
- } while (true);
- checksum = Hex.encodeHexString(digest.digest());
+ try (InputStream inputStream = Util.getInputStreamFromUrl(objectFile, null, HTTP_TIMEOUT_MS, HTTP_TIMEOUT_MS)) {
+ MessageDigest digest = MessageDigest.getInstance("MD5");
+ byte[] buf = new byte[4096];
+ int bytesRead = 0;
+ do {
+ bytesRead = inputStream.read(buf);
+ if (bytesRead < 0) {
+ break;
+ }
+ digest.update(buf, 0, bytesRead);
+ } while (true);
+
+ checksum = Hex.encodeHexString(digest.digest());
+ }
}
private void analyzeUda() throws AnalysisException {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org