Skip to content

[SPARK-14804][Spark][Graphx] Fix Graph vertexRDD/EdgeRDD checkpoint results ClassCastException - #12576

Closed
suyanNone wants to merge 2 commits into
apache:masterfrom
suyanNone:refine-graph
Closed

[SPARK-14804][Spark][Graphx] Fix Graph vertexRDD/EdgeRDD checkpoint results ClassCastException#12576
suyanNone wants to merge 2 commits into
apache:masterfrom
suyanNone:refine-graph

Conversation

@suyanNone

@suyanNonesuyanNone commented Apr 21, 2016

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

The PR fixed compute chain from CheckpointRDD<-vertexRDDImp to CheckpointRDD<-partitionRDD<- vertexRDDImpl

How was this patch tested?

unit test

@suyanNone

Copy link
Copy Markdown
ContributorAuthor

mistake to open, close first

@SparkQA

Copy link
Copy Markdown

Test build #56543 has finished for PR 12576 at commit f2ced74.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@suyanNonesuyanNone reopened this Apr 22, 2016
@suyanNonesuyanNone changed the title [Spark][Graphx] Fix Graph vertexRDD/EdgeRDD checkpoint results ClassCastException[SPARK-14804][Spark][Graphx] Fix Graph vertexRDD/EdgeRDD checkpoint results ClassCastExceptionApr 22, 2016
@SparkQA

Copy link
Copy Markdown

Test build #56635 has finished for PR 12576 at commit a106758.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@tdas

tdas commented Sep 27, 2016

Copy link
Copy Markdown
Contributor

This fix is roughly in the right direction. However there are two major concerns.

  • It changes the behavior of VertexRDD.isCheckpointed() which is a public method.
  • There must be new tests added to make sure this does not happen again. I dont see any new tests that checkpoints, forces the checkpoint by count/collect, and then collects again.

Ping @jkbradley

@tdas

tdas commented Sep 27, 2016

Copy link
Copy Markdown
Contributor

also, ping @rxin

@tdas

tdas commented Sep 27, 2016

Copy link
Copy Markdown
Contributor

Actually, correction. Here is a better fix. The key problem here is that the RDD internal logic for computing from checkpoints, depends on a public, override-able API. This is wrong. Either the isCheckpointed should have been marked final, or the internal isCheckpointedAndMaterialized should not have depended on isCheckpointed (see here).

So the simplest, and correct solution is probably (not tested) to change isCheckpointedAndMaterialzed.

 private[spark] def isCheckpointedAndMaterialized: Boolean = checkpointData.exists(_.isCheckpointed)

This preserves the behavior of VertexRDD.isCheckpointed() and prevents such issues related to overridden RDD.isCheckpointed() from happening ever again.

@jkbradley

Copy link
Copy Markdown
Member

CC: @ankurdave just making you aware of this

@suyanNone

suyanNone commented Sep 28, 2016

Copy link
Copy Markdown
ContributorAuthor

@tdas agree, isCheckpointed better be final, in current code, isCheckpointed exposed as public is for testing?

@tdas

tdas commented Oct 3, 2016

Copy link
Copy Markdown
Contributor

Okay so can you update this PR according to the discussion, and add the necessary tests as well?

@neggert

Copy link
Copy Markdown
Contributor

Not sure what's going on regarding the multiple PRs for this issue, but I cherry-picked this PR on top of 1.6.2 and it fixed the problem for me.

@maropumaropu mentioned this pull request Apr 23, 2017
peter-toth pushed a commit to peter-toth/spark that referenced this pull request Oct 6, 2018
This pr proposed to close stale PRs. Currently, we have 400+ open PRs and there are some stale PRs whose JIRA tickets have been already closed and whose JIRA tickets does not exist (also, they seem not to be minor issues).
// Open PRs whose JIRA tickets have been already closed
Closesapache#11785Closesapache#13027Closesapache#13614Closesapache#13761Closesapache#15197Closesapache#14006Closesapache#12576Closesapache#15447Closesapache#13259Closesapache#15616Closesapache#14473Closesapache#16638Closesapache#16146Closesapache#17269Closesapache#17313Closesapache#17418Closesapache#17485Closesapache#17551Closesapache#17463Closesapache#17625
// Open PRs whose JIRA tickets does not exist and they are not minor issues
Closesapache#10739Closesapache#15193Closesapache#15344Closesapache#14804Closesapache#16993Closesapache#17040Closesapache#15180Closesapache#17238
N/A
Author: Takeshi Yamamuro <yamamuro@apache.org>
Closesapache#17734 from maropu/resolved_pr.
Change-Id: Id2e590aa7283fe5ac01424d30a40df06da6098b5
zifeif2 pushed a commit to zifeif2/spark that referenced this pull request Nov 22, 2025
## What changes were proposed in this pull request?
This pr proposed to close stale PRs. Currently, we have 400+ open PRs and there are some stale PRs whose JIRA tickets have been already closed and whose JIRA tickets does not exist (also, they seem not to be minor issues).
// Open PRs whose JIRA tickets have been already closed
Closesapache#11785Closesapache#13027Closesapache#13614Closesapache#13761Closesapache#15197Closesapache#14006Closesapache#12576Closesapache#15447Closesapache#13259Closesapache#15616Closesapache#14473Closesapache#16638Closesapache#16146Closesapache#17269Closesapache#17313Closesapache#17418Closesapache#17485Closesapache#17551Closesapache#17463Closesapache#17625
// Open PRs whose JIRA tickets does not exist and they are not minor issues
Closesapache#10739Closesapache#15193Closesapache#15344Closesapache#14804Closesapache#16993Closesapache#17040Closesapache#15180Closesapache#17238
## How was this patch tested?
N/A
Author: Takeshi Yamamuro <yamamuro@apache.org>
Closesapache#17734 from maropu/resolved_pr.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@suyanNone@SparkQA@tdas@jkbradley@neggert