[
https://issues.apache.org/jira/browse/FLINK-6052?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15958701#comment-15958701
]
Chesnay Schepler commented on FLINK-6052:
-----------------------------------------
I don't think we have to change this. The returned stateHandle is only null
when the deque was empty. Since we check whether it is empty beforehand the
deque can only be empty if shutdown() was called concurrently, however the
access to shutdown() and getLatestCheckpoint() is guarded by a lock in the
CheckpointCoordinator.
> Potential null access in
> ZooKeeperCompletedCheckpointStore#getLatestCheckpoint()
> --------------------------------------------------------------------------------
>
> Key: FLINK-6052
> URL: https://issues.apache.org/jira/browse/FLINK-6052
> Project: Flink
> Issue Type: Bug
> Components: Distributed Coordination, State Backends, Checkpointing
> Affects Versions: 1.3.0
> Reporter: Ted Yu
> Assignee: Chesnay Schepler
> Priority: Minor
>
> {code}
> Tuple2<RetrievableStateHandle<CompletedCheckpoint>, String>
> checkpointStateHandle = checkpointStateHandles.peekLast();
> try {
> return retrieveCompletedCheckpoint(checkpointStateHandle);
> } catch (Exception e) {
> LOG.warn("Could not retrieve latest checkpoint. Removing it from " +
> "the completed checkpoint store.", e);
> try {
> // remove the checkpoint with broken state handle
> removeBrokenStateHandle(checkpointStateHandles.pollLast());
> } catch (Exception removeException) {
> {code}
> The code should handle the case where peekLast() / pollLast() returns null.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)