Apache Flink 1.14.5 Release Announcement

22 Jun 2022 Xingbo Huang

The Apache Flink Community is pleased to announce another bug fix release for Flink 1.14.

This release includes 67 bugs, vulnerability fixes and minor improvements for Flink 1.14. 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 to upgrade to Flink 1.14.5.

Release Artifacts

Maven Dependencies

<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-java</artifactId>
  <version>1.14.5</version>
</dependency>
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-streaming-java_2.11</artifactId>
  <version>1.14.5</version>
</dependency>
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-clients_2.11</artifactId>
  <version>1.14.5</version>
</dependency>

Binaries

You can find the binaries on the updated Downloads page.

Docker Images

PyPi

Release Notes

Sub-task

  • [FLINK-25800] - Update wrong links in the datastream/execution_mode.md page.

Bug

  • [FLINK-22984] - UnsupportedOperationException when using Python UDF to generate watermark
  • [FLINK-24491] - ExecutionGraphInfo may not be archived when the dispatcher terminates
  • [FLINK-25227] - Comparing the equality of the same (boxed) numeric values returns false
  • [FLINK-25440] - Apache Pulsar Connector Document description error about 'Starting Position'.
  • [FLINK-25904] - NullArgumentException when accessing checkpoint stats on standby JobManager
  • [FLINK-26016] - FileSystemLookupFunction does not produce correct results when hive table uses columnar storage
  • [FLINK-26018] - Unnecessary late events when using the new KafkaSource
  • [FLINK-26049] - The tolerable-failed-checkpoints logic is invalid when checkpoint trigger failed
  • [FLINK-26285] - ZooKeeperStateHandleStore does not handle not existing nodes properly in getAllAndLock
  • [FLINK-26334] - When timestamp - offset + windowSize < 0, elements cannot be assigned to the correct window
  • [FLINK-26381] - Wrong document order of Chinese version
  • [FLINK-26395] - The description of RAND_INTEGER is wrong in SQL function documents
  • [FLINK-26504] - Fix the incorrect type error in unbounded Python UDAF
  • [FLINK-26536] - PyFlink RemoteKeyedStateBackend#merge_namespaces bug
  • [FLINK-26543] - Fix the issue that exceptions generated in startup are missed in Python loopback mode
  • [FLINK-26550] - Correct the information of checkpoint failure
  • [FLINK-26607] - There are multiple MAX_LONG_VALUE value errors in pyflink code
  • [FLINK-26629] - Error in code comment for SubtaskStateMapper.RANGE
  • [FLINK-26645] - Pulsar Source subscribe to a single topic partition will consume all partitions from that topic
  • [FLINK-26708] - TimestampsAndWatermarksOperator should not propagate WatermarkStatus
  • [FLINK-26738] - Default value of StateDescriptor is valid when enable state ttl config
  • [FLINK-26775] - PyFlink WindowOperator#process_element register wrong cleanup timer
  • [FLINK-26846] - Gauge metrics doesn't work in PyFlink
  • [FLINK-26855] - ImportError: cannot import name 'environmentfilter' from 'jinja2'
  • [FLINK-26920] - Job executes failed with "The configured managed memory fraction for Python worker process must be within (0, 1], was: %s."
  • [FLINK-27108] - State cache clean up doesn't work as expected
  • [FLINK-27174] - Non-null check for bootstrapServers field is incorrect in KafkaSink
  • [FLINK-27223] - State access doesn't work as expected when cache size is set to 0
  • [FLINK-27255] - Flink-avro does not support serialization and deserialization of avro schema longer than 65535 characters
  • [FLINK-27315] - Fix the demo of MemoryStateBackendMigration
  • [FLINK-27409] - Cleanup stale slot allocation record when the resource requirement of a job is empty
  • [FLINK-27442] - Module flink-sql-avro-confluent-registry does not configure Confluent repo
  • [FLINK-27545] - Update examples in PyFlink shell
  • [FLINK-27676] - Output records from on_timer are behind the triggering watermark in PyFlink
  • [FLINK-27733] - Rework on_timer output behind watermark bug fix
  • [FLINK-27751] - Dependency resolution from repository.jboss.org fails on CI
  • [FLINK-27760] - NPE is thrown when executing PyFlink jobs in batch mode

New Feature

  • [FLINK-26382] - Add Chinese documents for flink-training exercises

Improvement

  • [FLINK-5151] - Add discussion about object mutations to heap-based state backend docs.
  • [FLINK-23843] - Exceptions during "SplitEnumeratorContext.runInCoordinatorThread()" should cause Global Failure instead of Process Kill
  • [FLINK-24274] - Wrong parameter order in documentation of State Processor API
  • [FLINK-24384] - Count checkpoints failed in trigger phase into numberOfFailedCheckpoints
  • [FLINK-26130] - Document why and when user would like to increase network buffer size
  • [FLINK-26575] - Improve the info message when restoring keyed state backend
  • [FLINK-26650] - Avoid to print stack trace for checkpoint trigger failure if not all tasks are started
  • [FLINK-26788] - AbstractDeserializationSchema should add cause when thow a FlinkRuntimeException
  • [FLINK-27088] - The example of using StringDeserializer for deserializing Kafka message value as string has an error
  • [FLINK-27480] - KafkaSources sharing the groupId might lead to InstanceAlreadyExistException warning
  • [FLINK-27776] - Throws exception when udaf used in sliding window does not implement merge method in PyFlink

Technical Debt

  • [FLINK-25694] - Upgrade Presto to resolve GSON/Alluxio Vulnerability
  • [FLINK-26352] - Missing license header in WebUI source files
  • [FLINK-26961] - Update multiple Jackson dependencies to v2.13.2 and v2.13.2.1