Skip to content

Conversation

@dongjoon-hyun
Copy link
Member

@dongjoon-hyun dongjoon-hyun commented Nov 3, 2019

What changes were proposed in this pull request?

This PR aims to remove check-cran from run-tests.sh.
We had better add an independent Jenkins job to run check-cran.

Why are the changes needed?

CRAN instability has been a blocker for our daily dev process.
The following simple check causes consecutive failures in 4 of 9 Jenkins
jobs + PR builder.

* checking CRAN incoming feasibility ...Error in
.check_package_CRAN_incoming(pkgdir) :
  dims [product 24] do not match the length of object [0]
  • spark-branch-2.4-test-sbt-hadoop-2.6
  • spark-branch-2.4-test-sbt-hadoop-2.7
  • spark-master-test-sbt-hadoop-2.7
  • spark-master-test-sbt-hadoop-3.2
  • PRBuilder

Does this PR introduce any user-facing change?

No.

How was this patch tested?

Currently, PR builder is failing due to the above issue. This PR should pass the Jenkins.

@dongjoon-hyun
Copy link
Member Author

dongjoon-hyun commented Nov 3, 2019

@shivaram , @felixcheung , @HyukjinKwon , @viirya , @srowen .
I made a PR to recover our PRBuilder and 4 Jenkins jobs. How do you think about this?
In fact, CRAN failure occurs more frequently than PG&E power shutdown in this year. 😄

@dongjoon-hyun dongjoon-hyun changed the title [SPARK-24152][R] Disable check-cran from run-tests.sh [SPARK-24152][R][TESTS] Disable check-cran from run-tests.sh Nov 3, 2019
@SparkQA
Copy link

SparkQA commented Nov 3, 2019

Test build #113149 has finished for PR 26375 at commit 0f2ce08.

  • This patch fails SparkR unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@shivaram
Copy link
Contributor

shivaram commented Nov 3, 2019

Do we know what the reason for the failure is? Also what is the work around in terms of detecting CRAN problems in a timely fashion? Can we say run this just for PRs that touch R code?


NO_TESTS=1 NO_MANUAL=1 $FWDIR/check-cran.sh 2>&1 | tee -a $CRAN_CHECK_LOG_FILE
FAILED=$((PIPESTATUS[0]||$FAILED))
# SPARK-24152 We will add this test back as a separate Jenkins job
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we plan to upgrade R version? I remember that a higher R version can avoid this kind of failure. cc @HyukjinKwon

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess the higher R version is going to hit this issue again after one year, but that sounds a good solution for now. How do you think about that, @shivaram and @felixcheung ?

@SparkQA
Copy link

SparkQA commented Nov 3, 2019

Test build #113150 has finished for PR 26375 at commit 235c3af.

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

@dongjoon-hyun
Copy link
Member Author

dongjoon-hyun commented Nov 3, 2019

Thanks, @shivaram .

Do we know what the reason for the failure is?

It's always happening their side changes. We don't know why this fails suddenly. As you see on SPARK-24152. This happens frequently in this year time to time . And, everytime, @viirya or @felixcheung contacted CRAN maintainers .

Also what is the work around in terms of detecting CRAN problems in a timely fashion?

We can have separate jobs for linter and publishing snapshot. It's non-blocking jobs.

Can we say run this just for PRs that touch R code?

That also can reduce this kind of massive outage. But, it's still be a blocker for all R PRs. CRAN check is only required only a few time when we do the release.

@dongjoon-hyun
Copy link
Member Author

I'm okay for both (1) invoking CRAN check for R PR only and (2) upgrading Jenkins R and raised the minimum R versions. However, let's unblock the PRBuilder first.

Both (1) and (2) also needs some time to develop and validate.

@dongjoon-hyun
Copy link
Member Author

dongjoon-hyun commented Nov 3, 2019

Inside the new PR for one of (1) and (2), we can reenable this. How do you think about that, @shivaram and @viirya ? Currently, this blocks the almost whole community for 21 hours since Nov 1st midnight (PST).

@shivaram
Copy link
Contributor

shivaram commented Nov 3, 2019

I'm not sure running it just on releases is enough as that makes it hard to go back and figure out what change broke the CRAN test. So running it on R PRs seems necessary to me.

I'm fine with unblocking the build for now if you can take care of opening a new JIRA / PR to track (1) and (2) above

@viirya
Copy link
Member

viirya commented Nov 3, 2019

It sounds fine to me as this actually blocks all PR dev. And because of weekend, CRAN sysadmins might not response quickly.

@dongjoon-hyun
Copy link
Member Author

Thank you all. Sure!

@dongjoon-hyun
Copy link
Member Author

I created SPARK-29732 first.

For the minimum version of R, could you raise an email to dev? If there is the best person to set it, I believe it is you, @shivaram , in the community. :)

Copy link
Member Author

@dongjoon-hyun dongjoon-hyun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a kind of HOTFIX, I'm merging this PR to unblock all the other PRs. Thank you for the swift reviews! Merged to master/2.4.

dongjoon-hyun added a commit that referenced this pull request Nov 3, 2019
### What changes were proposed in this pull request?

This PR aims to remove `check-cran` from `run-tests.sh`.
We had better add an independent Jenkins job to run `check-cran`.

### Why are the changes needed?

CRAN instability has been a blocker for our daily dev process.
The following simple check causes consecutive failures in 4 of 9 Jenkins
jobs + PR builder.

```
* checking CRAN incoming feasibility ...Error in
.check_package_CRAN_incoming(pkgdir) :
  dims [product 24] do not match the length of object [0]
```

- spark-branch-2.4-test-sbt-hadoop-2.6
- spark-branch-2.4-test-sbt-hadoop-2.7
- spark-master-test-sbt-hadoop-2.7
- spark-master-test-sbt-hadoop-3.2
- PRBuilder

### Does this PR introduce any user-facing change?

No.

### How was this patch tested?

Currently, PR builder is failing due to the above issue. This PR should pass the Jenkins.

Closes #26375 from dongjoon-hyun/SPARK-24152.

Authored-by: Dongjoon Hyun <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
(cherry picked from commit 91d9901)
Signed-off-by: Dongjoon Hyun <[email protected]>
@dongjoon-hyun dongjoon-hyun deleted the SPARK-24152 branch November 3, 2019 04:38
@HyukjinKwon
Copy link
Member

Hm, once we drop R 3.4 (deprecated from 3.0), we can deal with this issue permanently. I think we dont have to disable this but upgrade R version in Jenkins to 3.4.

@felixcheung
Copy link
Member

felixcheung commented Nov 3, 2019 via email

@HyukjinKwon
Copy link
Member

HyukjinKwon commented Nov 3, 2019

Also CRAN check is pretty important for R package summision. It also checks misusages like require or library which should be requireNamespace for instance. This is error-prone and I think PR builders should catch.

@HyukjinKwon
Copy link
Member

HyukjinKwon commented Nov 3, 2019

For instance, see the CRAN check failures at R vectorization - #23760.

https://github.com/apache/spark/pull/23760/files#diff-508641a8bd6c6b59f3e77c80cdcfa6a9R1221

Unlike pip packaging test, CRAN includes a set of linter-ish rules related to packages. It also verifies documentation as well.

@HyukjinKwon
Copy link
Member

@shaneknapp, can we upgrade R version from 3.1 to 3.4 in Jenkins (since we deprecated it at #23012)? I think we should re-enable it as soon as possible. The specific CRAN failure will be permanently fixed

@srowen
Copy link
Member

srowen commented Nov 3, 2019

I think it's OK to disable temporarily to fix the PR builders. If updating R fixes it, then it can come back. Is this step important for PR builders vs the release process? only the release process pushes to CRAN. Would we not find a lot of errors until release time if we did not?

@HyukjinKwon
Copy link
Member

Yeah, it has a lint-like feature unlike pip packaging test. I myself faced a lot when I worked on R vectoriation with Arrow optimization.

@HyukjinKwon
Copy link
Member

Maybe we can upgrade and bring it back quick instead of reverting .. ? I dont know how hard it is to upgrade R to 3.4 and how much it takes in Jenkins cc @shaneknapp

@dongjoon-hyun
Copy link
Member Author

Of course, we also can revert this if everything goes green. I'm +1 for all efforts if that is able to protect our PR builder from CRAN instability.

@viirya
Copy link
Member

viirya commented Nov 3, 2019

Looks like it was fixed at CRAN side.

@dongjoon-hyun
Copy link
Member Author

dongjoon-hyun commented Nov 3, 2019

Thank you for checking. Then, if you want, you can make a PR for reverting this~ @viirya .

@HyukjinKwon
Copy link
Member

Thanks all!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants