[
https://issues.apache.org/jira/browse/FLINK-8915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16398055#comment-16398055
]
vinoyang commented on FLINK-8915:
---------------------------------
Hi [~gjy] , I just analyzed this issue. The real source is
CheckpointStatsHistory's
{code:java}
/** Array of checkpointsArray. Writes go against this array. */
private transient AbstractCheckpointStats[] checkpointsArray;
{code}
I found the pending checkpoint could also be added to this array through method
:
{code:java}
void addInProgressCheckpoint(PendingCheckpointStats pending) {
{code}
then when the checkpoint transfered to the terminal state (completed or
failed), it will trigger this callback method :
{code:java}
boolean replacePendingCheckpointById(AbstractCheckpointStats completedOrFailed)
{
{code}
and others access the history info through the *createSnapshot* method which
return the instance of *CheckpointStatsHistory*. However, this method create
the instance with the checkpointArray. So it may constain the
pendingcheckpoint.
In my opinion, we should think the sematics of the *CheckpointStatsHistory* ,
when we call the *createSnapshot* method, whether it can contains pending
checkpoint or not. If not ,we can filter pending checkpoint by status. If yes,
we can also judge the status and give a error log or something handle way.
What's your opinion?
> CheckpointingStatisticsHandler fails to return PendingCheckpointStats
> ----------------------------------------------------------------------
>
> Key: FLINK-8915
> URL: https://issues.apache.org/jira/browse/FLINK-8915
> Project: Flink
> Issue Type: Bug
> Components: REST
> Affects Versions: 1.5.0, 1.6.0
> Reporter: Gary Yao
> Assignee: vinoyang
> Priority: Blocker
> Labels: flip6
> Fix For: 1.5.0
>
>
> {noformat}
> 2018-03-10 21:47:52,487 ERROR
> org.apache.flink.runtime.rest.handler.job.checkpoints.CheckpointingStatisticsHandler
> - Implementation error: Unhandled exception.
> java.lang.IllegalArgumentException: Given checkpoint stats object of type
> org.apache.flink.runtime.checkpoint.PendingCheckpointStats cannot be
> converted.
> at
> org.apache.flink.runtime.rest.messages.checkpoints.CheckpointStatistics.generateCheckpointStatistics(CheckpointStatistics.java:276)
> at
> org.apache.flink.runtime.rest.handler.job.checkpoints.CheckpointingStatisticsHandler.handleRequest(CheckpointingStatisticsHandler.java:146)
> at
> org.apache.flink.runtime.rest.handler.job.checkpoints.CheckpointingStatisticsHandler.handleRequest(CheckpointingStatisticsHandler.java:54)
> at
> org.apache.flink.runtime.rest.handler.job.AbstractExecutionGraphHandler.lambda$handleRequest$0(AbstractExecutionGraphHandler.java:81)
> at
> java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602)
> at
> java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)
> at
> java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442)
> at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:39)
> at
> akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:415)
> at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
> at
> scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
> at
> scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
> at
> scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)