You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Chesnay Schepler (JIRA)" <ji...@apache.org> on 2017/04/06 10:19:41 UTC

[jira] [Commented] (FLINK-6052) Potential null access in ZooKeeperCompletedCheckpointStore#getLatestCheckpoint()

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