[ 
https://issues.apache.org/jira/browse/FLINK-36237?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Krüger updated FLINK-36237:
----------------------------------
    Description: 
When using the JdbcSource with a split configuration and a 
SimpleJdbcConnectionProvider (default), I sometimes get a socket closed 
exception. This is because the created connection is a shared resource hold in 
the SimpleJdbcConnectionProvider.

The connection is requested here: 
[https://github.com/apache/flink-connector-jdbc/blob/1fcb9dd43a496778ee9e717657fcccdd116078cd/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/core/datastream/source/reader/JdbcSourceSplitReader.java#L272]

Now, if the SplitReader is closed by the SplitFetcher: 
[https://github.com/apache/flink/blob/be25a140f011e6ff93a23f28b3826d376a1c0ba7/flink-connectors/flink-connector-base/src/main/java/org/apache/flink/connector/base/source/reader/fetcher/SplitFetcher.java#L151]

this also closes the connection. But if the connection was already requested by 
the next split, the connection to use is closed which results in the socket 
closed exception.

My workaround was to set a connection provider which always return a fresh 
connection.

  was:
When using the JdbcSource with a split configuration and a 
SimpleJdbcConnectionProvider (default), I sometimes get a socket closed 
exception. This is because the created connection is a shared resource hold in 
the SimpleJdbcConnection Provider.

The connection is requested here: 
[https://github.com/apache/flink-connector-jdbc/blob/1fcb9dd43a496778ee9e717657fcccdd116078cd/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/core/datastream/source/reader/JdbcSourceSplitReader.java#L272]

Now, if the SplitReader is closed by the SplitFetcher: 
[https://github.com/apache/flink/blob/be25a140f011e6ff93a23f28b3826d376a1c0ba7/flink-connectors/flink-connector-base/src/main/java/org/apache/flink/connector/base/source/reader/fetcher/SplitFetcher.java#L151]

this also closes the connection. But if the connection was already requested by 
the next split, the connection to use is closed which results in the socket 
closed exception.

My workaround was to set a connection provider which always return a fresh 
connection.


> socket closed exception when using JdbcSource with split configuration
> ----------------------------------------------------------------------
>
>                 Key: FLINK-36237
>                 URL: https://issues.apache.org/jira/browse/FLINK-36237
>             Project: Flink
>          Issue Type: Bug
>          Components: Connectors / JDBC
>    Affects Versions: jdbc-3.3.0
>            Reporter: Martin Krüger
>            Priority: Major
>
> When using the JdbcSource with a split configuration and a 
> SimpleJdbcConnectionProvider (default), I sometimes get a socket closed 
> exception. This is because the created connection is a shared resource hold 
> in the SimpleJdbcConnectionProvider.
> The connection is requested here: 
> [https://github.com/apache/flink-connector-jdbc/blob/1fcb9dd43a496778ee9e717657fcccdd116078cd/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/core/datastream/source/reader/JdbcSourceSplitReader.java#L272]
> Now, if the SplitReader is closed by the SplitFetcher: 
> [https://github.com/apache/flink/blob/be25a140f011e6ff93a23f28b3826d376a1c0ba7/flink-connectors/flink-connector-base/src/main/java/org/apache/flink/connector/base/source/reader/fetcher/SplitFetcher.java#L151]
> this also closes the connection. But if the connection was already requested 
> by the next split, the connection to use is closed which results in the 
> socket closed exception.
> My workaround was to set a connection provider which always return a fresh 
> connection.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to