Apache Flink 1.16.2 Release Announcement

May 25, 2023 - Weijie Guo (@WeijieGuo12)

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

This release includes 104 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.2.

Release Artifacts #

Maven Dependencies #

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

Binaries #

You can find the binaries on the updated Downloads page.

Docker Images #

PyPi #

Release Notes #

Bug

  • [FLINK-27246] - Code of method "processElement(Lorg/apache/flink/streaming/runtime/streamrecord/StreamRecord;)V" of class "HashAggregateWithKeys$9211" grows beyond 64 KB
  • [FLINK-27800] - addInEdge check state error
  • [FLINK-27848] - ZooKeeperLeaderElectionDriver keeps writing leader information, using up zxid
  • [FLINK-28786] - Cannot run PyFlink 1.16 on MacOS with M1 chip
  • [FLINK-29852] - Adaptive Scheduler duplicates operators for each parallel instance in the Web UI
  • [FLINK-30461] - Some rocksdb sst files will remain forever
  • [FLINK-30462] - DefaultMultipleComponentLeaderElectionService saves wrong leader session ID
  • [FLINK-30477] - Not properly blocking retries when timeout occurs in AsyncWaitOperator
  • [FLINK-30561] - ChangelogStreamHandleReaderWithCache cause FileNotFoundException
  • [FLINK-30567] - Wrong insert overwrite behavior when the table contains uppercase character with Hive dialect
  • [FLINK-30679] - Can not load the data of hive dim table when project-push-down is introduced
  • [FLINK-30792] - clean up not uploaded state changes after materialization complete
  • [FLINK-30803] - PyFlink mishandles script dependencies
  • [FLINK-30864] - Optional pattern at the start of a group pattern not working
  • [FLINK-30876] - Fix ResetTransformationProcessor don't reset the transformation of ExecNode in BatchExecMultiInput.rootNode
  • [FLINK-30881] - Crictl/Minikube version mismatch causes errors in k8s setup
  • [FLINK-30885] - Optional group pattern starts with non-optional looping pattern get wrong result on followed-by
  • [FLINK-30917] - The user configured max parallelism does not take effect when using adaptive batch scheduler
  • [FLINK-30989] - Configuration table.exec.spill-compression.block-size not take effect in batch job
  • [FLINK-31017] - Early-started partial match timeout not yield completed matches
  • [FLINK-31041] - Build up of pending global failures causes JM instability
  • [FLINK-31042] - AfterMatchSkipStrategy not working on notFollowedBy ended pattern
  • [FLINK-31043] - KeyError exception is thrown in CachedMapState
  • [FLINK-31077] - Trigger checkpoint failed but it were shown as COMPLETED by rest API
  • [FLINK-31083] - Python ProcessFunction with OutputTag cannot be reused
  • [FLINK-31099] - Chained WindowOperator throws NPE in PyFlink ThreadMode
  • [FLINK-31131] - The INITIALIZING of ExecutionState is missed in the state_machine doc
  • [FLINK-31162] - Avoid setting private tokens to AM container context when kerberos delegation token fetch is disabled
  • [FLINK-31182] - CompiledPlan cannot deserialize BridgingSqlFunction with MissingTypeStrategy
  • [FLINK-31183] - Flink Kinesis EFO Consumer can fail to stop gracefully
  • [FLINK-31185] - Python BroadcastProcessFunction not support side output
  • [FLINK-31272] - Duplicate operators appear in the StreamGraph for Python DataStream API jobs
  • [FLINK-31273] - Left join with IS_NULL filter be wrongly pushed down and get wrong join results
  • [FLINK-31283] - Correct the description of building from source with scala version
  • [FLINK-31286] - Python processes are still alive when shutting down a session cluster directly without stopping the jobs
  • [FLINK-31293] - Request memory segment from LocalBufferPool may hanging forever.
  • [FLINK-31305] - KafkaWriter doesn't wait for errors for in-flight records before completing flush
  • [FLINK-31319] - Kafka new source partitionDiscoveryIntervalMs=0 cause bounded source can not quit
  • [FLINK-31346] - Batch shuffle IO scheduler does not throw TimeoutException if numRequestedBuffers is greater than 0
  • [FLINK-31386] - Fix the potential deadlock issue of blocking shuffle
  • [FLINK-31414] - exceptions in the alignment timer are ignored
  • [FLINK-31437] - Wrong key 'lookup.cache.caching-missing-key' in connector documentation
  • [FLINK-31478] - TypeError: a bytes-like object is required, not 'JavaList' is thrown when ds.execute_and_collect() is called on a KeyedStream
  • [FLINK-31503] - "org.apache.beam.sdk.options.PipelineOptionsRegistrar: Provider org.apache.beam.sdk.options.DefaultPipelineOptionsRegistrar not a subtype" is thrown when executing Python UDFs in SQL Client
  • [FLINK-31588] - The unaligned checkpoint type is wrong at subtask level
  • [FLINK-31632] - watermark aligned idle source can't resume
  • [FLINK-31652] - Flink should handle the delete event if the pod was deleted while pending
  • [FLINK-31653] - Using`if` statement for a string subtype of the row type may meet npe in code generated by codegen
  • [FLINK-31657] - ConfigurationInfo generates incorrect openapi schema
  • [FLINK-31670] - ElasticSearch connector's document was not incorrect linked to external repo
  • [FLINK-31683] - Align the outdated Chinese filesystem connector docs
  • [FLINK-31690] - The current key is not set for KeyedCoProcessOperator
  • [FLINK-31707] - Constant string cannot be used as input arguments of Pandas UDAF
  • [FLINK-31743] - Avoid relocating the RocksDB's log failure when filename exceeds 255 characters
  • [FLINK-31763] - Convert requested buffers to overdraft buffers when pool size is decreased
  • [FLINK-31959] - Correct the unaligned checkpoint type at checkpoint level
  • [FLINK-31963] - java.lang.ArrayIndexOutOfBoundsException when scaling down with unaligned checkpoints
  • [FLINK-32010] - KubernetesLeaderRetrievalDriver always waits for lease update to resolve leadership
  • [FLINK-32027] - Batch jobs could hang at shuffle phase when max parallelism is really large
  • [FLINK-32029] - FutureUtils.handleUncaughtException swallows exceptions that are caused by the exception handler code

Improvement

  • [FLINK-25874] - PyFlink package dependencies conflict
  • [FLINK-29729] - Fix credential info configured in flink-conf.yaml is lost during creating ParquetReader
  • [FLINK-30962] - Improve error messaging when launching py4j gateway server
  • [FLINK-31031] - Disable the output buffer of Python process to make it more convenient for interactive users
  • [FLINK-31227] - Remove 'scala version' from file sink modules
  • [FLINK-31651] - Improve logging of granting/revoking leadership in JobMasterServiceLeadershipRunner to INFO level
  • [FLINK-31692] - Integrate MongoDB connector docs into Flink website
  • [FLINK-31703] - Update Flink docs for AWS v4.1.0
  • [FLINK-31764] - Get rid of numberOfRequestedOverdraftMemorySegments in LocalBufferPool
  • [FLINK-31779] - Track stable branch of externalized connector instead of specific release tag
  • [FLINK-31799] - Python connector download link should refer to the url defined in externalized repository
  • [FLINK-31984] - Savepoint on S3 should be relocatable if entropy injection is not effective
  • [FLINK-32024] - Short code related to externalized connector retrieve version from its own data yaml