[
https://issues.apache.org/jira/browse/FLINK-36090?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maxim Vershinin updated FLINK-36090:
------------------------------------
Description:
*Summary:* Incorrect handling of priority queue states in IngestDB during
restoring due to missing {{equals()}} and {{hashCode()}} methods in
{{{}RegisteredPriorityQueueStateBackendMetaInfo{}}}.
*Problem Description:*
During the restoring by IngestDB in my Flink project, an issue was identified
where the priority queue states are not managed correctly in the backend. The
problem stems from the absence of {{equals()}} and {{hashCode()}} methods in
the {{RegisteredPriorityQueueStateBackendMetaInfo}} class.
In particular, within the {{exportColumnFamiliesWithSstDataInKeyGroupsRange}}
method of the {{RocksDBIncrementalRestoreOperation}} class, if the state is a
priority queue, identical states from different subtasks are erroneously
treated as distinct states within the {{exportedColumnFamiliesOut}} map. This
leads to inconsistent behavior and errors during the restoring process.
*Proposed Solution:*
To address this issue, add {{equals()}} and {{hashCode()}} methods to the
{{RegisteredPriorityQueueStateBackendMetaInfo}} class. Implementing these
methods will ensure that priority queue states are accurately recognized and
handled across different subtasks, thereby preventing errors during restoring
by IngestDB.
was:
*Summary:* Incorrect handling of priority queue states in IngestDB during
restoring due to missing {{equals()}} and {{hashCode()}} methods in
{{{}RegisteredPriorityQueueStateBackendMetaInfo{}}}.
*Problem Description:*
During the restoration of IngestDB in my Flink project, an issue was identified
where the priority queue states are not managed correctly in the backend. The
problem stems from the absence of {{equals()}} and {{hashCode()}} methods in
the {{RegisteredPriorityQueueStateBackendMetaInfo}} class.
In particular, within the {{exportColumnFamiliesWithSstDataInKeyGroupsRange}}
method of the {{RocksDBIncrementalRestoreOperation}} class, if the state is a
priority queue, identical states from different subtasks are erroneously
treated as distinct states within the {{exportedColumnFamiliesOut}} map. This
leads to inconsistent behavior and errors during the restoration process.
*Proposed Solution:*
To address this issue, add {{equals()}} and {{hashCode()}} methods to the
{{RegisteredPriorityQueueStateBackendMetaInfo}} class. Implementing these
methods will ensure that priority queue states are accurately recognized and
handled across different subtasks, thereby preventing errors during IngestDB
restoration.
> Bug with IngestDB restore operation for priority queue state in backend
> -----------------------------------------------------------------------
>
> Key: FLINK-36090
> URL: https://issues.apache.org/jira/browse/FLINK-36090
> Project: Flink
> Issue Type: Bug
> Components: Runtime / State Backends
> Affects Versions: 2.0.0
> Reporter: Maxim Vershinin
> Priority: Major
> Labels: pull-request-available
>
> *Summary:* Incorrect handling of priority queue states in IngestDB during
> restoring due to missing {{equals()}} and {{hashCode()}} methods in
> {{{}RegisteredPriorityQueueStateBackendMetaInfo{}}}.
> *Problem Description:*
> During the restoring by IngestDB in my Flink project, an issue was identified
> where the priority queue states are not managed correctly in the backend. The
> problem stems from the absence of {{equals()}} and {{hashCode()}} methods in
> the {{RegisteredPriorityQueueStateBackendMetaInfo}} class.
> In particular, within the {{exportColumnFamiliesWithSstDataInKeyGroupsRange}}
> method of the {{RocksDBIncrementalRestoreOperation}} class, if the state is a
> priority queue, identical states from different subtasks are erroneously
> treated as distinct states within the {{exportedColumnFamiliesOut}} map. This
> leads to inconsistent behavior and errors during the restoring process.
> *Proposed Solution:*
> To address this issue, add {{equals()}} and {{hashCode()}} methods to the
> {{RegisteredPriorityQueueStateBackendMetaInfo}} class. Implementing these
> methods will ensure that priority queue states are accurately recognized and
> handled across different subtasks, thereby preventing errors during restoring
> by IngestDB.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)