Apache Flink 1.14.3 Release Announcement

17 Jan 2022 Thomas Weise (@thweise) & Martijn Visser (@martijnvisser82)

The Apache Flink community released the second bugfix version of the Apache Flink 1.14 series. The first bugfix release was 1.14.2, being an emergency release due to an Apache Log4j Zero Day (CVE-2021-44228). Flink 1.14.1 was abandoned. That means that this Flink release is the first bugfix release of the Flink 1.14 series which contains bugfixes not related to the mentioned CVE.

This release includes 164 fixes and minor improvements for Flink 1.14.0. The list below includes bugfixes and improvements. For a complete list of all changes see: JIRA.

We highly recommend all users to upgrade to Flink 1.14.3.

Updated Maven dependencies:

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

You can find the binaries on the updated Downloads page.

    Release Notes - Flink - Version 1.14.3

Sub-task

  • [FLINK-24355] - Expose the flag for enabling checkpoints after tasks finish in the Web UI

Bug

  • [FLINK-15987] - SELECT 1.0e0 / 0.0e0 throws NumberFormatException
  • [FLINK-17914] - HistoryServer deletes cached archives if archive listing fails
  • [FLINK-19142] - Local recovery can be broken if slot hijacking happened during a full restart
  • [FLINK-20195] - Jobs endpoint returns duplicated jobs
  • [FLINK-20370] - Result is wrong when sink primary key is not the same with query
  • [FLINK-21289] - Application mode ignores the pipeline.classpaths configuration
  • [FLINK-21345] - NullPointerException LogicalCorrelateToJoinFromTemporalTableFunctionRule.scala:157
  • [FLINK-22113] - UniqueKey constraint is lost with multiple sources join in SQL
  • [FLINK-22954] - Don't support consuming update and delete changes when use table function that does not contain table field
  • [FLINK-23614] - The resulting scale of TRUNCATE(DECIMAL, ...) is not correct
  • [FLINK-23704] - FLIP-27 sources are not generating LatencyMarkers
  • [FLINK-23827] - Fix ModifiedMonotonicity inference for some node
  • [FLINK-23919] - PullUpWindowTableFunctionIntoWindowAggregateRule generates invalid Calc for Window TVF
  • [FLINK-24156] - BlobServer crashes due to SocketTimeoutException in Java 11
  • [FLINK-24232] - Archiving of suspended jobs prevents breaks subsequent archive attempts
  • [FLINK-24291] - Decimal precision is lost when deserializing in test cases
  • [FLINK-24310] - A bug in the BufferingSink example in the doc
  • [FLINK-24315] - Cannot rebuild watcher thread while the K8S API server is unavailable
  • [FLINK-24318] - Casting a number to boolean has different results between 'select' fields and 'where' condition
  • [FLINK-24331] - PartiallyFinishedSourcesITCase fails with "No downstream received 0 from xxx;"
  • [FLINK-24336] - PyFlink TableEnvironment executes the SQL randomly MalformedURLException with the configuration for 'pipeline.classpaths'
  • [FLINK-24344] - Handling of IOExceptions when triggering checkpoints doesn't cause job failover
  • [FLINK-24353] - Bash scripts do not respect dynamic configurations when calculating memory sizes
  • [FLINK-24366] - Unnecessary/misleading error message about failing restores when tasks are already canceled.
  • [FLINK-24371] - Support SinkWriter preCommit without the need of a committer
  • [FLINK-24377] - TM resource may not be properly released after heartbeat timeout
  • [FLINK-24380] - Flink should handle the state transition of the pod from Pending to Failed
  • [FLINK-24381] - Table API exceptions may leak sensitive configuration values
  • [FLINK-24401] - TM cannot exit after Metaspace OOM
  • [FLINK-24407] - Pulsar connector chinese document link to Pulsar document location incorrectly.
  • [FLINK-24408] - org.codehaus.janino.InternalCompilerException: Compiling "StreamExecValues$200": Code of method "nextRecord(Ljava/lang/Object;)Ljava/lang/Object;" of class "StreamExecValues$200" grows beyond 64 KB
  • [FLINK-24409] - Kafka topics with periods in their names generate a constant stream of errors
  • [FLINK-24431] - [Kinesis][EFO] EAGER registration strategy does not work when job fails over
  • [FLINK-24432] - RocksIteratorWrapper.seekToLast() calls the wrong RocksIterator method
  • [FLINK-24465] - Wrong javadoc and documentation for buffer timeout
  • [FLINK-24467] - Set min and max buffer size even if the difference less than threshold
  • [FLINK-24468] - NPE when notifyNewBufferSize
  • [FLINK-24469] - Incorrect calcualtion of the buffer size in case of channel data skew
  • [FLINK-24480] - EqualiserCodeGeneratorTest fails on azure
  • [FLINK-24488] - KafkaRecordSerializationSchemaBuilder does not forward timestamp
  • [FLINK-24492] - incorrect implicit type conversion between numeric and (var)char
  • [FLINK-24506] - checkpoint directory is not configurable through the Flink configuration passed into the StreamExecutionEnvironment
  • [FLINK-24540] - Fix Resource leak due to Files.list
  • [FLINK-24543] - Zookeeper connection issue causes inconsistent state in Flink
  • [FLINK-24550] - Can not access job information from a standby jobmanager UI
  • [FLINK-24551] - BUFFER_DEBLOAT_SAMPLES property is taken from the wrong configuration
  • [FLINK-24552] - Ineffective buffer debloat configuration in randomized tests
  • [FLINK-24563] - Comparing timstamp_ltz with random string throws NullPointerException
  • [FLINK-24596] - Bugs in sink.buffer-flush before upsert-kafka
  • [FLINK-24597] - RocksdbStateBackend getKeysAndNamespaces would return duplicate data when using MapState
  • [FLINK-24600] - Duplicate 99th percentile displayed in checkpoint summary
  • [FLINK-24608] - Sinks built with the unified sink framework do not receive timestamps when used in Table API
  • [FLINK-24613] - Documentation on orc supported data types is outdated
  • [FLINK-24647] - ClusterUncaughtExceptionHandler does not log the exception
  • [FLINK-24654] - NPE on RetractableTopNFunction when some records were cleared by state ttl
  • [FLINK-24662] - PyFlink sphinx check failed with "node class 'meta' is already registered, its visitors will be overridden"
  • [FLINK-24667] - Channel state writer would fail the task directly if meeting exception previously
  • [FLINK-24676] - Schema does not match if explain insert statement with partial column
  • [FLINK-24678] - Correct the metric name of map state contains latency
  • [FLINK-24691] - FLINK SQL SUM() causes a precision error
  • [FLINK-24704] - Exception occurs when the input record loses monotonicity on the sort key field of UpdatableTopNFunction
  • [FLINK-24706] - AkkaInvocationHandler silently ignores deserialization errors
  • [FLINK-24708] - `ConvertToNotInOrInRule` has a bug which leads to wrong result
  • [FLINK-24728] - Batch SQL file sink forgets to close the output stream
  • [FLINK-24733] - Data loss in pulsar source when using shared mode
  • [FLINK-24738] - Fail during announcing buffer size to released local channel
  • [FLINK-24761] - Fix PartitionPruner code gen compile fail
  • [FLINK-24773] - KafkaCommitter should fail on unknown Exception
  • [FLINK-24777] - Processed (persisted) in-flight data description miss on Monitoring Checkpointing page
  • [FLINK-24789] - IllegalStateException with CheckpointCleaner being closed already
  • [FLINK-24792] - OperatorCoordinatorSchedulerTest crashed JVM on AZP
  • [FLINK-24835] - "group by" in the interval join will throw a exception
  • [FLINK-24846] - AsyncWaitOperator fails during stop-with-savepoint
  • [FLINK-24858] - TypeSerializer version mismatch during eagerly restore
  • [FLINK-24874] - Dropdown menu is not properly shown in UI
  • [FLINK-24885] - ProcessElement Interface parameter Collector : java.lang.NullPointerException
  • [FLINK-24919] - UnalignedCheckpointITCase hangs on Azure
  • [FLINK-24922] - Fix spelling errors in the word "parallism"
  • [FLINK-24937] - "kubernetes application HA test" hangs on azure
  • [FLINK-24938] - Checkpoint cleaner is closed before checkpoints are discarded
  • [FLINK-25022] - ClassLoader leak with ThreadLocals on the JM when submitting a job through the REST API
  • [FLINK-25067] - Correct the description of RocksDB's background threads
  • [FLINK-25084] - Field names must be unique. Found duplicates
  • [FLINK-25091] - Official website document FileSink orc compression attribute reference error
  • [FLINK-25096] - Issue in exceptions API(/jobs/:jobid/exceptions) in flink 1.13.2
  • [FLINK-25126] - FlinkKafkaInternalProducer state is not reset if transaction finalization fails
  • [FLINK-25132] - KafkaSource cannot work with object-reusing DeserializationSchema
  • [FLINK-25134] - Unused RetryRule in KafkaConsumerTestBase swallows retries
  • [FLINK-25222] - Remove NetworkFailureProxy used for Kafka connector tests
  • [FLINK-25271] - ApplicationDispatcherBootstrapITCase. testDispatcherRecoversAfterLosingAndRegainingLeadership failed on azure
  • [FLINK-25294] - Incorrect cloudpickle import
  • [FLINK-25375] - Update Log4j to 2.17.0
  • [FLINK-25418] - The dir_cache is specified in the flink task. When there is no network, you will still download the python third-party library
  • [FLINK-25446] - Avoid sanity check on read bytes on DataInputStream#read(byte[])
  • [FLINK-25468] - Local recovery fails if local state storage and RocksDB working directory are not on the same volume
  • [FLINK-25477] - The directory structure of the State Backends document is not standardized
  • [FLINK-25513] - CoFlatMapFunction requires both two flat_maps to yield something

Improvement

  • [FLINK-20443] - ContinuousProcessingTimeTrigger doesn't fire at the end of the window
  • [FLINK-21467] - Document possible recommended usage of Bounded{One/Multi}Input.endInput and emphasize that they could be called multiple times
  • [FLINK-23519] - Aggregate State Backend Latency by State Level
  • [FLINK-23798] - Avoid using reflection to get filter when partition filter is enabled
  • [FLINK-23842] - Add log messages for reader registrations and split requests.
  • [FLINK-23914] - Make connector testing framework more verbose on test failure
  • [FLINK-24117] - Remove unHandledErrorListener in ZooKeeperLeaderElectionDriver and ZooKeeperLeaderRetrievalDriver
  • [FLINK-24148] - Add bloom filter policy option in RocksDBConfiguredOptions
  • [FLINK-24382] - RecordsOut metric for sinks is inaccurate
  • [FLINK-24437] - Remove unhandled exception handler from CuratorFramework before closing it
  • [FLINK-24460] - Rocksdb Iterator Error Handling Improvement
  • [FLINK-24481] - Translate buffer debloat documenation to chinese
  • [FLINK-24529] - flink sql job cannot use custom job name
  • [FLINK-24631] - Avoiding directly use the labels as selector for deployment and service
  • [FLINK-24670] - Restructure unaligned checkpoints documentation page to "Checkpointing under back pressure"
  • [FLINK-24690] - Clarification of buffer size threshold calculation in BufferDebloater
  • [FLINK-24695] - Update how to configure unaligned checkpoints in the documentation
  • [FLINK-24739] - State requirements for Flink's application mode in the documentation
  • [FLINK-24813] - Improve ImplicitTypeConversionITCase
  • [FLINK-24880] - Error messages "OverflowError: timeout value is too large" shown when executing PyFlink jobs
  • [FLINK-24958] - correct the example and link for temporal table function documentation
  • [FLINK-24987] - Enhance ExternalizedCheckpointCleanup enum
  • [FLINK-25092] - Implement artifact cacher for Bash based Elasticsearch test

Technical Debt

  • [FLINK-24367] - Add a fallback AkkaRpcSystemLoader for tests in the IDE
  • [FLINK-24445] - Move RPC System packaging to package phase
  • [FLINK-24455] - FallbackAkkaRpcSystemLoader should check for maven errors
  • [FLINK-24513] - AkkaRpcSystemLoader must be an ITCase
  • [FLINK-24559] - flink-rpc-akka-loader does not bundle flink-rpc-akka
  • [FLINK-24609] - flink-rpc-akka uses wrong Scala version property for parser-combinators
  • [FLINK-24859] - Document new File formats
  • [FLINK-25472] - Update to Log4j 2.17.1