19 Oct 2021 Chesnay Schepler
The Apache Flink community released the third bugfix version of the Apache Flink 1.13 series.
This release includes 136 fixes and minor improvements for Flink 1.13.2. The list below includes bugfixes and improvements. For a complete list of all changes see: JIRA.
We highly recommend all users to upgrade to Flink 1.13.3.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.13.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.13.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <version>1.13.3</version> </dependency>
You can find the binaries on the updated Downloads page.
Below you can find more information on changes that might affect the behavior of Flink:
Propagate unique keys for
StreamTableEnvironment.fromChangelogStream might produce a different stream because primary keys were not properly considered before.
Table API ‘Primary Key’ feature was not working correctly (FLINK-23895 FLINK-20374)
Various primary key issues have been fixed that effectively made it impossible to use this feature. The change might affect savepoint backwards compatibility for affected pipelines. Pipelines that were not affected should be able to restore from a savepoint without issues. The resulting changelog stream might be different after these changes.
SourceFunction#cancel() contract about interrupting (FLINK-23527)
The contract of the
SourceFunction#cancel() method with respect to interruptions has been clarified:
- The source itself shouldn’t interrupt the source thread.
- The source can expect to not be interrupted during a clean cancellation procedure.
taskmanager.slot.timeout falls back to
The config option
taskmanager.slot.timeout falls now back to
akka.ask.timeout if no value has been configured.
akka.ask.timeout for tests using the MiniCluster (FLINK-23906)
akka.ask.timeout used by the
MiniCluster has been increased to 5 minutes. If you want to use a smaller value, then you have to set it explicitly in the passed configuration.
The change is due to the fact that messages cannot get lost in a single-process minicluster, so this timeout (which otherwise helps to detect message loss in distributed setups) has no benefit here.
The increased timeout reduces the number of false-positive timeouts, for example during heavy tests on loaded CI/CD workers or during debugging.