Apache Flink 1.12.3 Released

April 29, 2021 - Arvid Heise

The Apache Flink community released the next bugfix version of the Apache Flink 1.12 series.

This release includes 73 fixes and minor improvements for Flink 1.12.2. The list below includes a detailed list of all fixes and improvements.

We highly recommend all users to upgrade to Flink 1.12.3.

Updated Maven dependencies:


You can find the binaries on the updated Downloads page.

List of resolved issues:


  • [FLINK-18071] - CoordinatorEventsExactlyOnceITCase.checkListContainsSequence fails on CI
  • [FLINK-20547] - Batch job fails due to the exception in network stack
  • [FLINK-20654] - Unaligned checkpoint recovery may lead to corrupted data stream
  • [FLINK-20722] - HiveTableSink should copy the record when converting RowData to Row
  • [FLINK-20752] - FailureRateRestartBackoffTimeStrategy allows one less restart than configured
  • [FLINK-20761] - Cannot read hive table/partition whose location path contains comma
  • [FLINK-20977] - USE DATABASE & USE CATALOG fails with quoted identifiers containing characters to be escaped in Flink SQL client
  • [FLINK-21008] - Residual HA related Kubernetes ConfigMaps and ZooKeeper nodes when cluster entrypoint received SIGTERM in shutdown
  • [FLINK-21012] - AvroFileFormatFactory uses non-deserializable lambda function
  • [FLINK-21133] - FLIP-27 Source does not work with synchronous savepoint
  • [FLINK-21148] - YARNSessionFIFOSecuredITCase cannot connect to BlobServer
  • [FLINK-21159] - KafkaSourceEnumerator not sending NoMoreSplitsEvent to unassigned reader
  • [FLINK-21178] - Task failure will not trigger master hook's reset()
  • [FLINK-21289] - Application mode ignores the pipeline.classpaths configuration
  • [FLINK-21387] - DispatcherTest.testInvalidCallDuringInitialization times out on azp
  • [FLINK-21388] - Parquet DECIMAL logical type is not properly supported in ParquetSchemaConverter
  • [FLINK-21431] - UpsertKafkaTableITCase.testTemporalJoin hang
  • [FLINK-21434] - When UDAF return ROW type, and the number of fields is more than 14, the crash happend
  • [FLINK-21497] - JobLeaderIdService completes leader future despite no leader being elected
  • [FLINK-21515] - SourceStreamTaskTest.testStopWithSavepointShouldNotInterruptTheSource is failing
  • [FLINK-21518] - CheckpointCoordinatorTest.testMinCheckpointPause fails fatally on AZP
  • [FLINK-21523] - ArrayIndexOutOfBoundsException occurs while run a hive streaming job with partitioned table source
  • [FLINK-21535] - UnalignedCheckpointITCase.execute failed with "OutOfMemoryError: Java heap space"
  • [FLINK-21550] - ZooKeeperHaServicesTest.testSimpleClose fail
  • [FLINK-21552] - The managed memory was not released if exception was thrown in createPythonExecutionEnvironment
  • [FLINK-21606] - TaskManager connected to invalid JobManager leading to TaskSubmissionException
  • [FLINK-21609] - SimpleRecoveryITCaseBase.testRestartMultipleTimes fails on azure
  • [FLINK-21654] - YARNSessionCapacitySchedulerITCase.testStartYarnSessionClusterInQaTeamQueue fail because of NullPointerException
  • [FLINK-21685] - Flink JobManager failed to restart from checkpoint in kubernetes HA setup
  • [FLINK-21691] - KafkaSource fails with NPE when setting it up
  • [FLINK-21707] - Job is possible to hang when restarting a FINISHED task with POINTWISE BLOCKING consumers
  • [FLINK-21710] - FlinkRelMdUniqueKeys gets incorrect result on TableScan after project push-down
  • [FLINK-21725] - DataTypeExtractor extracts wrong fields ordering for Tuple12
  • [FLINK-21733] - WatermarkAssigner incorrectly recomputing the rowtime index which may cause ArrayIndexOutOfBoundsException
  • [FLINK-21746] - flink sql fields in row access error about scalarfunction
  • [FLINK-21753] - Cycle references between memory manager and gc cleaner action
  • [FLINK-21817] - New Kafka Source might break subtask and split assignment upon rescale
  • [FLINK-21833] - TemporalRowTimeJoinOperator.java will lead to the state expansion by short-life-cycle & huge RowData, although config idle.state.retention.time
  • [FLINK-21889] - source:canal-cdc , sink:upsert-kafka, print "select * from sinkTable", throw NullException
  • [FLINK-21922] - The method partition_by in Over doesn't work for expression dsl
  • [FLINK-21933] - [kinesis][efo] EFO consumer treats interrupts as retryable exceptions
  • [FLINK-21941] - testSavepointRescalingOutPartitionedOperatorStateList fail
  • [FLINK-21942] - KubernetesLeaderRetrievalDriver not closed after terminated which lead to connection leak
  • [FLINK-21944] - AbstractArrowPythonAggregateFunctionOperator.dispose should consider whether arrowSerializer is null
  • [FLINK-21969] - PythonTimestampsAndWatermarksOperator emitted the Long.MAX_VALUE watermark before emitting all the data
  • [FLINK-21980] - ZooKeeperRunningJobsRegistry creates an empty znode
  • [FLINK-21986] - taskmanager native memory not release timely after restart
  • [FLINK-21992] - Fix availability notification in UnionInputGate
  • [FLINK-21996] - Transient RPC failure without TaskManager failure can lead to split assignment loss
  • [FLINK-22006] - Could not run more than 20 jobs in a native K8s session when K8s HA enabled
  • [FLINK-22024] - Maven: Entry has not been leased from this pool / fix for release 1.12
  • [FLINK-22053] - NumberSequenceSource causes fatal exception when less splits than parallelism.
  • [FLINK-22055] - RPC main thread executor may schedule commands with wrong time unit of delay
  • [FLINK-22061] - The DEFAULT_NON_SPLITTABLE_FILE_ENUMERATOR defined in FileSource should points to NonSplittingRecursiveEnumerator
  • [FLINK-22081] - Entropy key not resolved if flink-s3-fs-hadoop is added as a plugin
  • [FLINK-22082] - Nested projection push down doesn't work for data such as row(array(row))
  • [FLINK-22124] - The job finished without any exception if error was thrown during state access
  • [FLINK-22172] - Fix the bug of shared resource among Python Operators of the same slot is not released
  • [FLINK-22184] - Rest client shutdown on failure runs in netty thread
  • [FLINK-22191] - PyFlinkStreamUserDefinedFunctionTests.test_udf_in_join_condition_2 fail due to NPE
  • [FLINK-22327] - NPE exception happens if it throws exception in finishBundle during job shutdown
  • [FLINK-22339] - Fix some encoding exceptions were not thrown in cython coders
  • [FLINK-22345] - CoordinatorEventsExactlyOnceITCase hangs on azure
  • [FLINK-22385] - Type mismatch in NetworkBufferPool


  • [FLINK-20533] - Add histogram support to Datadog reporter
  • [FLINK-21382] - Standalone K8s documentation does not explain usage of standby JobManagers
  • [FLINK-21521] - Pretty print K8s specifications
  • [FLINK-21690] - remove redundant tolerableCheckpointFailureNumber setting in CheckpointConfig
  • [FLINK-21735] - Harden JobMaster#updateTaskExecutionState()
  • [FLINK-22051] - Better document the distinction between stop-with-savepoint and stop-with-savepoint-with-drain
  • [FLINK-22142] - Remove console logging for Kafka connector for AZP runs
  • [FLINK-22208] - Bump snappy-java to 1.1.5+
  • [FLINK-22297] - Perform early check to ensure that the length of the result is the same as the input for Pandas UDF