tzulitai opened a new pull request #7256: [FLINK-11087] [state] Incorrect K/V 
serializer association when reading broadcast from 1.5.x snapshots
URL: https://github.com/apache/flink/pull/7256
 
 
   ## What is the purpose of the change
   
   This is a bug that prevents Flink versions 1.6.x (up to latest 1.6.2) and 
1.7.0 to successfully restore broadcast state that was taken in 1.5.x.
   
   The problem is that when restoring a broadcast state's meta information from 
a 1.5.x savepoint, the
   `LegacyStateMetaInfoReaders.OperatorBackendStateMetaInfoReaderV2V3` 
incorrectly associates the first restored serializer as the value serializer, 
and the second restored serializer as the key serializer.
   The actual order of this should be the other way around.
   
   This PR also updates the `StatefulJobWBroadcastStateMigrationITCase` to have 
different K/V types for the broadcast states under test, as well as re-generate 
the test savepoints in `release-1.5` and `release-1.6`.
   That migration ITCase failed to catch this bug, because with K/V types being 
identical (and therefore identical serializers), the incorrect association 
didn't affect the result of the test.
   
   ## Brief change log
   
   - Fix K/V serializer association in 
`LegacyStateMetaInfoReaders.OperatorBackendStateMetaInfoReaderV2V3`.
   - Update `StatefulJobWBroadcastStateMigrationITCase` to have different K/V 
types for the broadcast states under test
   - Regenerate test savepoints for `StatefulJobWBroadcastStateMigrationITCase` 
under branches `release-1.6` and `release-1.5`.
   - Amend compatibility table in docs 
(https://ci.apache.org/projects/flink/flink-docs-master/ops/upgrading.html#compatibility-table)
 to notify the issue.
   
   ## Verifying this change
   
   The updated `StatefulJobWBroadcastStateMigrationITCase` should pass.
   
   ## Does this pull request potentially affect one of the following parts:
   
     - Dependencies (does it add or upgrade a dependency): (yes / **no**)
     - The public API, i.e., is any changed class annotated with 
`@Public(Evolving)`: (yes / **no**)
     - The serializers: (yes / **no** / don't know)
     - The runtime per-record code paths (performance sensitive): (yes / **no** 
/ don't know)
     - Anything that affects deployment or recovery: JobManager (and its 
components), Checkpointing, Yarn/Mesos, ZooKeeper: (**yes** / no / don't know)
     - The S3 file system connector: (yes / no / don't know)
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to