Apache Flink 1.16.3 Release Announcement

November 29, 2023 - Rui Fan (@1996fanrui)

The Apache Flink Community is pleased to announce the third bug fix release of the Flink 1.16 series.

This release includes 52 bug fixes, vulnerability fixes, and minor improvements for Flink 1.16. 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.16.3.

Release Artifacts #

Maven Dependencies #

<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-java</artifactId>
  <version>1.16.3</version>
</dependency>
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-streaming-java</artifactId>
  <version>1.16.3</version>
</dependency>
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-clients</artifactId>
  <version>1.16.3</version>
</dependency>

Binaries #

You can find the binaries on the updated Downloads page.

Docker Images #

PyPi #

Release Notes #

    Release Notes - Flink - Version 1.16.3

Bug

  • [FLINK-32316] - Duplicated announceCombinedWatermark task maybe scheduled if jobmanager failover
  • [FLINK-32362] - SourceAlignment announceCombinedWatermark period task maybe lost
  • [FLINK-32411] - SourceCoordinator thread leaks when job recovers from checkpoint
  • [FLINK-32414] - Watermark alignment will cause flink jobs to hang forever when any source subtask has no SourceSplit
  • [FLINK-32496] - Sources with idleness and alignment always wait for alignment when part of multiple sources is idle
  • [FLINK-27415] - Read empty csv file throws exception in FileSystem table connector
  • [FLINK-28185] - "Invalid negative offset" when using OffsetsInitializer.timestamp(.)
  • [FLINK-29913] - Shared state would be discarded by mistake when maxConcurrentCheckpoint>1
  • [FLINK-30559] - May get wrong result for `if` expression if it's string data type
  • [FLINK-30596] - Multiple POST /jars/:jarid/run requests with the same jobId, runs duplicate jobs
  • [FLINK-30751] - Remove references to disableDataSync in RocksDB documentation
  • [FLINK-30966] - Flink SQL IF FUNCTION logic error
  • [FLINK-31139] - not upload empty state changelog file
  • [FLINK-31967] - SQL with LAG function NullPointerException
  • [FLINK-32023] - execution.buffer-timeout cannot be set to -1 ms
  • [FLINK-32136] - Pyflink gateway server launch fails when purelib != platlib
  • [FLINK-32172] - KafkaExample can not run with args
  • [FLINK-32199] - MetricStore does not remove metrics of nonexistent parallelism in TaskMetricStore when scale down job parallelism
  • [FLINK-32217] - Retain metric store can cause NPE
  • [FLINK-32254] - FineGrainedSlotManager may not allocate enough taskmanagers if maxSlotNum is configured
  • [FLINK-32296] - Flink SQL handle array of row incorrectly
  • [FLINK-32548] - Make watermark alignment ready for production use
  • [FLINK-32583] - RestClient can deadlock if request made after Netty event executor terminated
  • [FLINK-32592] - (Stream)ExEnv#initializeContextEnvironment isn't thread-safe
  • [FLINK-32655] - RecreateOnResetOperatorCoordinator did not forward notifyCheckpointAborted to the real OperatorCoordinator
  • [FLINK-32680] - Job vertex names get messed up once there is a source vertex chained with a MultipleInput vertex in job graph
  • [FLINK-32760] - Version Conflict in flink-sql-connector-hive for shaded.parquet prefix packages
  • [FLINK-32888] - File upload runs into EndOfDataDecoderException
  • [FLINK-32909] - The jobmanager.sh pass arguments failed
  • [FLINK-33010] - NPE when using GREATEST() in Flink SQL
  • [FLINK-33149] - Bump snappy-java to 1.1.10.4
  • [FLINK-33291] - The release profile of Flink does include enforcing the Java version only in a "soft" way

Improvement

  • [FLINK-29542] - Unload.md wrongly writes UNLOAD operation as LOAD operation
  • [FLINK-32314] - Ignore class-loading errors after RPC system shutdown
  • [FLINK-32371] - Bump snappy-java to 1.1.10.1