[ 
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)

Reply via email to