EdwardTsai1015 opened a new issue, #5804:
URL: https://github.com/apache/seatunnel/issues/5804

   ### Search before asking
   
   - [X] I had searched in the 
[issues](https://github.com/apache/seatunnel/issues?q=is%3Aissue+label%3A%22bug%22)
 and found no similar issues.
   
   
   ### What happened
   
   when using http source, SocketTimeoutException occurs occasionally. I used 
api tools like Postman, it took more than 1 min to receive the respones, so how 
can I set connection timeout in seatunnel config file?
   我在使用seatunnel的http source时,偶尔会遇到 java.net.SocketTimeoutException: Read timed 
out,我使用Postman这样的工具测试调用的接口,基本上要花费1-2分钟才能收到响应,我理解可以通过在任务的配置文件中配置连接超时时间为120秒来避免这个报错,但是我在文档中没有找到相关的配置。
   
   ### SeaTunnel Version
   
   2.3.2
   
   ### SeaTunnel Config
   
   ```conf
   env {
     execution.parallelism = 1
     job.mode = "BATCH"
   }
   
   source {
     http {
       result_table_name = "http"
       url = 
"https://cpi-prd-XXX.it-XXX-rt.cpi.cn40.apps.XXX.sapcloud.cn/http/XXX/XXXX";
       method = "POST"
       format = "json"
       json_field = {
         status = "$.RSP_DATA.STATUS"
         message = "$.RSP_DATA.MESSAGE"
         out_data = "$.RSP_DATA.OUT_DATA"
       }
       schema = {
         fields {
           status = string
           message = string
           out_data = string
         }
       }
       headers = {Authorization="Basic XXX", 
Content-Type="application/json;charset=UTF-8"}
       body = 
"{\"RSQ_DATA\":{\"L_HEAD\":{\"SENDSYS\":\"OA\",\"RECESYS\":\"SAP\",\"MATNR\":\"*\",\"MAKTX\":\"\",\"MTART\":\"\",\"BRAND\":\"\",\"MODEL\":\"\",\"MATKL\":\"\",\"WERKS\":\"*\",\"ZYL1\":\"\",\"ZYL2\":\"\",\"ZYL3\":\"\",\"ZYL4\":\"\",\"ZYL5\":\"\"}}}"
     }
   }
   
   transform {
     Sql {
       source_table_name = "http"
       result_table_name = "http2"
       query = "select NOW(3) as ts, CURRENT_DATE as dt, status, message, 
out_data from http"
     }
   }
   
   sink {
       Doris {
           source_table_name = "http2"
           fenodes = "192.168.3.XXX:XXXX"
           username = root
           password = "XXX"
           table.identifier = "prod_db.ods_erp_sap_if032_s_hh"
           sink.enable-2pc = "true"
           sink.label-prefix = "ods_erp_sap_if032_s_hh_${output}"
           doris.config = {
             format="json"
             read_json_by_line="true"
             columns="ts, dt, status, message, out_data"
           }
       }
   }
   ```
   
   
   ### Running Command
   
   ```shell
   through DolphinScheduler
   just run the seatunnel workflow
   
   seatunnel.sh
   
   cluster mode
   ```
   
   
   ### Error Exception
   
   ```log
   2023-11-06 17:41:01,504 ERROR 
org.apache.seatunnel.connectors.seatunnel.http.source.HttpSourceReader - 
java.net.SocketTimeoutException: Read timed out
   java.util.concurrent.ExecutionException: java.net.SocketTimeoutException: 
Read timed out
           at 
com.github.rholder.retry.Retryer$ExceptionAttempt.<init>(Retryer.java:254) 
~[?:?]
           at com.github.rholder.retry.Retryer.call(Retryer.java:163) ~[?:?]
           at 
org.apache.seatunnel.connectors.seatunnel.http.client.HttpClientProvider.retryWithException(HttpClientProvider.java:373)
 ~[?:?]
           at 
org.apache.seatunnel.connectors.seatunnel.http.client.HttpClientProvider.getResponse(HttpClientProvider.java:359)
 ~[?:?]
           at 
org.apache.seatunnel.connectors.seatunnel.http.client.HttpClientProvider.doPost(HttpClientProvider.java:291)
 ~[?:?]
           at 
org.apache.seatunnel.connectors.seatunnel.http.client.HttpClientProvider.execute(HttpClientProvider.java:123)
 ~[?:?]
           at 
org.apache.seatunnel.connectors.seatunnel.http.source.HttpSourceReader.pollNext(HttpSourceReader.java:94)
 ~[?:?]
           at 
org.apache.seatunnel.engine.server.task.flow.SourceFlowLifeCycle.collect(SourceFlowLifeCycle.java:135)
 ~[seatunnel-starter.jar:2.3.2]
           at 
org.apache.seatunnel.engine.server.task.SourceSeaTunnelTask.collect(SourceSeaTunnelTask.java:84)
 ~[seatunnel-starter.jar:2.3.2]
           at 
org.apache.seatunnel.engine.server.task.SeaTunnelTask.stateProcess(SeaTunnelTask.java:165)
 ~[seatunnel-starter.jar:2.3.2]
           at 
org.apache.seatunnel.engine.server.task.SourceSeaTunnelTask.call(SourceSeaTunnelTask.java:89)
 ~[seatunnel-starter.jar:2.3.2]
           at 
org.apache.seatunnel.engine.server.TaskExecutionService$BlockingWorker.run(TaskExecutionService.java:613)
 ~[seatunnel-starter.jar:2.3.2]
           at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
~[?:1.8.0_361]
           at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
~[?:1.8.0_361]
           at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
~[?:1.8.0_361]
           at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
~[?:1.8.0_361]
           at java.lang.Thread.run(Thread.java:750) [?:1.8.0_361]
   Caused by: java.net.SocketTimeoutException: Read timed out
           at java.net.SocketInputStream.socketRead0(Native Method) 
~[?:1.8.0_361]
           at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) 
~[?:1.8.0_361]
           at java.net.SocketInputStream.read(SocketInputStream.java:171) 
~[?:1.8.0_361]
           at java.net.SocketInputStream.read(SocketInputStream.java:141) 
~[?:1.8.0_361]
           at 
sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:475) 
~[?:1.8.0_361]
           at 
sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:469) 
~[?:1.8.0_361]
           at 
sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:69)
 ~[?:1.8.0_361]
           at 
sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1271) 
~[?:1.8.0_361]
           at sun.security.ssl.SSLSocketImpl.access$300(SSLSocketImpl.java:76) 
~[?:1.8.0_361]
           at 
sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:948) 
~[?:1.8.0_361]
           at 
org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:139)
 ~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:155)
 ~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:284)
 ~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
 ~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
 ~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261)
 ~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:165)
 ~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157) 
~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:272)
 ~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124)
 ~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272) 
~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) 
~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) 
~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) 
~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
 ~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
 ~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
 ~[seatunnel-hadoop3-3.1.4-uber-2.3.2-optional.jar:2.3.2]
           at 
org.apache.seatunnel.connectors.seatunnel.http.client.HttpClientProvider.lambda$retryWithException$1(HttpClientProvider.java:373)
 ~[?:?]
           at 
com.github.rholder.retry.AttemptTimeLimiters$NoAttemptTimeLimit.call(AttemptTimeLimiters.java:78)
 ~[?:?]
           at com.github.rholder.retry.Retryer.call(Retryer.java:160) ~[?:?]
           ... 15 more
   ```
   
   
   ### Zeta or Flink or Spark Version
   
   Zeta
   
   ### Java or Scala Version
   
   java 1.8
   
   ### Screenshots
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to