Apache Flink 1.20.1 Release Announcement
February 12, 2025 - Alexander FedulovThe Apache Flink Community is pleased to announce the first bug fix release of the Flink 1.20 series.
This release includes 75 bug fixes, vulnerability fixes, and minor improvements for Flink 1.20. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.20.1.
The Flink community agreed to include this update in a patch release, despite minor differences in default memory allocation between Netty 3 and Netty 4. By default, Netty 4 allocates slightly more memory to improve performance. However, we believe this will have no impact on the vast majority of use cases.
For a detailed overview of these differences and available configuration options, please refer to the relevant section of the Flink documentation.
Release Artifacts #
Maven Dependencies #
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>1.20.1</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java</artifactId>
<version>1.20.1</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients</artifactId>
<version>1.20.1</version>
</dependency>
Binaries #
You can find the binaries on the updated Downloads page.
Docker Images #
- library/flink (official images)
- apache/flink (ASF repository)
PyPi #
Release Notes #
Release Notes - Flink - Version 1.20.1
Bug
- [FLINK-29065] - Flink v1.15.1 contains netty(version:3.10.6). There are many vulnerabilities, like CVE-2021-21409 etc. please confirm these version and fix. thx
- [FLINK-29797] - can't run a job on yarn, if set fs.default-scheme
- [FLINK-30899] - FileSystemTableSource with CSV format incorrectly selects fields if filtering for partition
- [FLINK-33117] - a wrong scala example in udfs page
- [FLINK-33571] - Bump json-path from 2.7.0 to 2.9.0
- [FLINK-34194] - Upgrade Flink CI Docker container to Ubuntu 22.04
- [FLINK-35334] - Code generation: init method exceeds 64 KB when there is a long array field with Table API
- [FLINK-35721] - I found out that in the Flink SQL documentation it says that Double type cannot be converted to Boolean type, but in reality, it can.
- [FLINK-35764] - TimerGauge is incorrect when update is called during a measurement
- [FLINK-35766] - When the job contains many YieldingOperatorFactory instances, compiling the JobGraph hangs
- [FLINK-35833] - ArtifactFetchManager always creates artifact dir
- [FLINK-35885] - proctime aggregate window triggered by watermark
- [FLINK-35886] - Incorrect watermark idleness timeout accounting when subtask is backpressured/blocked
- [FLINK-35887] - Null Pointer Exception in TypeExtractor.isRecord when trying to provide type info for interface
- [FLINK-35935] - CREATE TABLE AS doesn't work with LIMIT
- [FLINK-35977] - Missing an import in datastream.md
- [FLINK-36000] - DynamicTableSink#Context's getTargetColumns should not return an array of zero length
- [FLINK-36116] - Javadocs aren't visible anymore for Flink 1.17 and above
- [FLINK-36125] - File not found exception on restoring state handles with file merging
- [FLINK-36173] - Invalid link in checkpoint documentation
- [FLINK-36227] - NullPointerException when starting flink with logback logger
- [FLINK-36260] - numBytesInLocal and numBuffersInLocal being reported as remote
- [FLINK-36287] - Sink with topologies should not participate in UC
- [FLINK-36318] - Fail to restore from 1.18 if LAG function is used
- [FLINK-36368] - Fix subtask management in CommittableCollector
- [FLINK-36379] - Improve (Global)Committer with UC disabled
- [FLINK-36405] - Fix startup issues due to Hive delegation token on kerberos clusters
- [FLINK-36417] - STATE_TTL doesn't work with WatermarkAssigner
- [FLINK-36421] - Missing fsync in FsCheckpointStreamFactory
- [FLINK-36451] - Kubernetes Application JobManager Potential Deadlock and TaskManager Pod Residuals
- [FLINK-36455] - Sink should commit everything on notifyCheckpointCompleted
- [FLINK-36511] - FlinkSecurityManager#checkExit StackOverFlow if haltOnSystemExit is enabled
- [FLINK-36530] - Not able to restore list state from S3
- [FLINK-36533] - Fix detecting bind failure in case of Netty EPOLL transport
- [FLINK-36543] - Table API over windows cannot be string serialized
- [FLINK-36571] - Flink dashboard does not show Busy / Backpressure
- [FLINK-36642] - Table API expressions with several built-in functions are not correctly serialized to SQL
- [FLINK-36644] - TIMESTAMPDIFF can not be string serialized
- [FLINK-36654] - Decimal divide Integer reports Null pointer exception
- [FLINK-36714] - sstmerge/CompactionScheduler termination can be interrupted
- [FLINK-36788] - Add coverage for GlobalCommitter for SinkV2
- [FLINK-36840] - Multiple time-related built-in functions cannot be called
- [FLINK-36856] - CollectSinkOperatorFactory is not respecting batch size and socket timeout configs
- [FLINK-36883] - Views should keep the time attributes of the query
- [FLINK-36941] - Fix Doc for DATE_FORMAT
- [FLINK-37016] - NPE when ClusterEntrypoing is shut down before initialization
- [FLINK-37025] - Periodic SQL watermarks can travel back in time
- [FLINK-37029] - Fix the materialized table docs of full mode cron expression
- [FLINK-37084] - NullPointerException occurs during handling timer of window in PyFlink
- [FLINK-37098] - Can not select time attribute from a view
- [FLINK-37168] - TimerRegistrationAction in unregisteredTimers is not cleaned up properly after the timers are registered
- [FLINK-37183] - Usrlib symlinks are not followed
Improvement
- [FLINK-36021] - Delegating the responsibility for compression to every tier
- [FLINK-36127] - Support sorting watermark on flink web
- [FLINK-36593] - Upgrade io.airlift:aircompressor to mitigate CVE
- [FLINK-36643] - Upgrade aws-java-sdk-core to 1.12.779 to fix vulnerability
- [FLINK-36689] - [UI] Upgrade runtime web Angular framework and associated deps to latest version
- [FLINK-36716] - Address vulnerabilities in Flink UI
- [FLINK-37099] - Document possible Netty4 memory related configurations
Technical Debt
- [FLINK-36420] - Upgrade org.apache.avro:avro to 1.11.4
- [FLINK-36468] - Use Flink Preconditions util instead of Parquet
- [FLINK-36510] - Upgrade Pekko from 1.0.1 to 1.1.2