Apache Flink 1.15.1 Release Announcement

July 6, 2022 - David Anderson (@alpinegizmo)

The Apache Flink Community is pleased to announce the first bug fix release of the Flink 1.15 series.

This release includes 62 bug fixes, vulnerability fixes, and minor improvements for Flink 1.15. 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.15.1.

Release Artifacts #

Maven Dependencies #

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

Binaries #

You can find the binaries on the updated Downloads page.

Docker Images #

PyPi #

Release Notes #

The community is aware of 3 issues that were introduced with 1.15.0 that remain unresolved. Efforts are underway to fix these issues for Flink 1.15.2:

  • [FLINK-28861] - Non-deterministic UID generation might cause issues during restore for Table/SQL API
  • [FLINK-28060] - Kafka commit on checkpointing fails repeatedly after a broker restart
  • [FLINK-28322] - DataStreamScanProvider's new method is not compatible

Bug

  • [FLINK-22984] - UnsupportedOperationException when using Python UDF to generate watermark
  • [FLINK-24491] - ExecutionGraphInfo may not be archived when the dispatcher terminates
  • [FLINK-24735] - SQL client crashes with `Cannot add expression of different type to set`
  • [FLINK-26645] - Pulsar Source subscribe to a single topic partition will consume all partitions from that topic
  • [FLINK-27041] - KafkaSource in batch mode failing if any topic partition is empty
  • [FLINK-27140] - Move JobResultStore dirty entry creation into ioExecutor
  • [FLINK-27174] - Non-null check for bootstrapServers field is incorrect in KafkaSink
  • [FLINK-27218] - Serializer in OperatorState has not been updated when new Serializers are NOT incompatible
  • [FLINK-27223] - State access doesn't work as expected when cache size is set to 0
  • [FLINK-27247] - ScalarOperatorGens.numericCasting is not compatible with legacy behavior
  • [FLINK-27255] - Flink-avro does not support serialization and deserialization of avro schema longer than 65535 characters
  • [FLINK-27282] - Fix the bug of wrong positions mapping in RowCoder
  • [FLINK-27367] - SQL CAST between INT and DATE is broken
  • [FLINK-27368] - SQL CAST(' 1 ' as BIGINT) returns wrong result
  • [FLINK-27409] - Cleanup stale slot allocation record when the resource requirement of a job is empty
  • [FLINK-27418] - Flink SQL TopN result is wrong
  • [FLINK-27420] - Suspended SlotManager fails to re-register metrics when started again
  • [FLINK-27465] - AvroRowDeserializationSchema.convertToTimestamp fails with negative nano seconds
  • [FLINK-27487] - KafkaMetricWrappers do incorrect cast
  • [FLINK-27545] - Update examples in PyFlink shell
  • [FLINK-27563] - Resource Providers - Yarn doc page has minor display error
  • [FLINK-27606] - CompileException when using UDAF with merge() method
  • [FLINK-27676] - Output records from on_timer are behind the triggering watermark in PyFlink
  • [FLINK-27683] - Insert into (column1, column2) Values(.....) fails with SQL hints
  • [FLINK-27711] - Correct the typo of set_topics_pattern by changing it to set_topic_pattern for Pulsar Connector
  • [FLINK-27733] - Rework on_timer output behind watermark bug fix
  • [FLINK-27734] - Not showing checkpoint interval properly in WebUI when checkpoint is disabled
  • [FLINK-27760] - NPE is thrown when executing PyFlink jobs in batch mode
  • [FLINK-27762] - Kafka WakeupException during handling splits changes
  • [FLINK-27797] - PythonTableUtils.getCollectionInputFormat cannot correctly handle None values
  • [FLINK-27848] - ZooKeeperLeaderElectionDriver keeps writing leader information, using up zxid
  • [FLINK-27881] - The key(String) in PulsarMessageBuilder returns null
  • [FLINK-27890] - SideOutputExample.java fails
  • [FLINK-27910] - FileSink not enforcing rolling policy if started from scratch
  • [FLINK-27933] - Savepoint status cannot be queried from standby jobmanager
  • [FLINK-27955] - PyFlink installation failure on Windows OS
  • [FLINK-27999] - NoSuchMethodError when using Hive 3 dialect
  • [FLINK-28018] - the start index to create empty splits in BinaryInputFormat#createInputSplits is inappropriate
  • [FLINK-28019] - Error in RetractableTopNFunction when retracting a stale record with state ttl enabled
  • [FLINK-28114] - The path of the Python client interpreter could not point to an archive file in distributed file system

Improvement

  • [FLINK-24586] - SQL functions should return STRING instead of VARCHAR(2000)
  • [FLINK-26788] - AbstractDeserializationSchema should add cause when throwing a FlinkRuntimeException
  • [FLINK-26909] - Allow setting parallelism to -1 from CLI
  • [FLINK-27064] - Centralize ArchUnit rules for production code
  • [FLINK-27480] - KafkaSources sharing the groupId might lead to InstanceAlreadyExistException warning
  • [FLINK-27534] - Apply scalafmt to 1.15 branch
  • [FLINK-27776] - Throw exception when UDAF used in sliding window does not implement merge method in PyFlink
  • [FLINK-27935] - Add Pyflink example of create temporary view document

Technical Debt

  • [FLINK-25694] - Upgrade Presto to resolve GSON/Alluxio Vulnerability

Sub-task

  • [FLINK-26052] - Update chinese documentation regarding FLIP-203
  • [FLINK-26588] - Translate the new SQL CAST documentation to Chinese
  • [FLINK-27382] - Make Job mode wait with cluster shutdown until the cleanup is done