r-lib / covr

Test coverage reports for R
https://covr.r-lib.org
Other
335 stars 115 forks source link

Covr Fails on Windows "object 'mcexit' not found" #223

Closed billdenney closed 7 years ago

billdenney commented 8 years ago

When I try running package_coverage on windows, I get the error shown below. I think it may have to do with trying to use multiple cores in some way (which doesn't work in windows).

mycoverage <- package_coverage()
Error in run_commands(pkg, tmp_lib, code) : Error running commands:

R version 3.3.0 (2016-05-03) -- "Supposedly Educational"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library('PKNCA')
Error in get(name, envir = asNamespace(pkg), inherits = FALSE) : 
  object 'mcexit' not found
Error : unable to load R code in package 'PKNCA'
Error: package or namespace load failed for 'PKNCA'
Execution halted
billdenney commented 8 years ago

An important detail here may be that I do load the parallel library and use mclapply which in windows is a simple pass-through to lapply.

eliotmcintire commented 8 years ago

In addition to the Windows case described above, I am also getting a stall on our SpaDES package Travis-CI builds. This may or may not be the same issue, but I believe it started at the same time.

package_coverage works fine for our package on our Linux servers.

Finally, this just began between Sept 19 and Sept 21 (the dates of two of our Travis builds, one working, then not).

jimhester commented 8 years ago

@eliotmcintire Looks like current builds are passing fine on linux, also this is certainly an unrelated issue as this is windows specific.

Also I would generally only run covr one one build rather than all of them, you can use a conditional like https://github.com/hadley/devtools/blob/master/.travis.yml#L35

eliotmcintire commented 8 years ago

@jimhester Thank you. My comment may have been a little imprecise. While trying to diagnose our Travis build failure that began Sept 21, I was running package_coverage locally on my Windows machine and I came across the same Windows problem as indicated in this issue #223, thus my comment here. I don't have a solution to that problem, but it is less pertinent because we rely mostly on the Travis-CI to run our package coverages.

To further be more precise, we only have one Travis build. The two I mentioned are the same one that worked on Sept 19, but then failed at our next commit Sept 21. Our tests are all passing on all our platforms when we run locally (Windows, OSx, Debian) but our Travis build does not, but it is only the package_coverage failing on Travis. We have not been able to diagnose why the stalling on Travis.

msusplugas commented 8 years ago

I have the same problem as billdenney and I can't run covr when a package has parallel as a dependency. Even the TestParallel tests from covr are not working on my Windows machine:

> getwd()
[1] "C:/temp/covr-master/tests/testthat/TestParallel"
> package_coverage(quiet=FALSE)
* installing *source* package 'TestParallel' ...
** R
** tests
** preparing package for lazy loading
** help
*** installing help indices
  converting help for package 'TestParallel'
** building package indices
** testing if installed package can be loaded
* DONE (TestParallel)
Running specific tests for package ‘TestParallel’
  Running ‘testthat.R’
Error in run_commands(pkg, tmp_lib, code) : Error running commands:

R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library('TestParallel')
Error in get(name, envir = asNamespace(pkg), inherits = FALSE) : 
  object 'mcexit' not found
Error : unable to load R code in package 'TestParallel'
Error: package or namespace load failed for 'TestParallel'
Execution halted
In addition: Warning messages:
1: running command '"C:/PROGRA~1/R/R-32~1.3/bin/x64/R" CMD BATCH --vanilla --no-timing  "testthat.R" "testthat.Rout" LANGUAGE=C' had status 1 
2: running command '"C:/PROGRA~1/R/R-32~1.3/bin/x64/R" CMD BATCH --vanilla --no-timing "C:/Users/MICHSUSP/AppData/Local/Temp/RtmpyMXSrC/R_LIBS3fc02a8e3f48/TestParallel-commands.Rout" "C:/Users/MICHSUSP/AppData/Local/Temp/RtmpyMXSrC/R_LIBS3fc02a8e3f48/TestParallel-commands.Rout.fail"' had status 1

Content of the file: C:/Users/MICHSUSP/AppData/Local/Temp/RtmpyMXSrC/R_LIBS3fc02a8e3f48/TestParallel-commands.Rout.fail

R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library('TestParallel')
Error in get(name, envir = asNamespace(pkg), inherits = FALSE) : 
  object 'mcexit' not found
Error : unable to load R code in package 'TestParallel'
Error: package or namespace load failed for 'TestParallel'
Execution halted
Rekyt commented 7 years ago

Just to mention that I still have the same bug on the current development version, this is the output of devtools::session_info():

Session info --------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.3.3 (2017-03-06)
 system   x86_64, mingw32             
 ui       RStudio (1.0.136)           
 language (EN)                        
 collate  French_France.1252          
 tz       Europe/Warsaw               
 date     2017-03-10                  

Packages ------------------------------------------------------------------------------------
 package      * version date       source                                   
 assertthat     0.1     2013-12-06 CRAN (R 3.3.0)                           
 backports      1.0.5   2017-01-18 CRAN (R 3.3.2)                           
 callr          1.0.0   2016-06-18 CRAN (R 3.3.1)                           
 clisymbols     1.1.0   2017-01-27 CRAN (R 3.3.2)                           
 covr           2.2.2   2017-03-10 Github (jimhester/covr@accef86)          
 crayon         1.3.2   2016-06-28 CRAN (R 3.3.0)                           
 curl           2.3     2016-11-24 CRAN (R 3.3.2)                           
 cyclocomp      1.1.0   2017-01-24 Github (MangoTheCat/cyclocomp@6156a12)   
 desc           1.1.0   2017-01-27 CRAN (R 3.3.2)                           
 devtools       1.12.0  2016-06-24 CRAN (R 3.3.1)                           
 digest         0.6.12  2017-01-27 CRAN (R 3.3.2)                           
 git2r          0.18.0  2017-01-01 CRAN (R 3.3.2)                           
 goodpractice * 1.0.0   2017-01-24 Github (MangoTheCat/goodpractice@e6ea88f)
 httr           1.2.1   2016-07-03 CRAN (R 3.3.1)                           
 jsonlite       1.3     2017-02-28 CRAN (R 3.3.2)                           
 knitr          1.15.1  2016-11-22 CRAN (R 3.3.2)                           
 lazyeval       0.2.0   2016-06-12 CRAN (R 3.3.0)                           
 lintr          1.0.0   2016-04-16 CRAN (R 3.3.1)                           
 magrittr       1.5     2014-11-22 CRAN (R 3.3.0)                           
 memoise        1.0.0   2016-01-29 CRAN (R 3.3.0)                           
 praise         1.0.0   2015-08-11 CRAN (R 3.3.0)                           
 R6             2.2.0   2016-10-05 CRAN (R 3.3.1)                           
 rcmdcheck      1.2.1   2016-09-28 CRAN (R 3.3.2)                           
 Rcpp           0.12.9  2017-01-14 CRAN (R 3.3.2)                           
 remotes        1.0.0   2016-09-10 CRAN (R 3.3.2)                           
 rex            1.1.1   2016-03-11 CRAN (R 3.3.1)                           
 rprojroot      1.2     2017-01-16 CRAN (R 3.3.2)                           
 rstudioapi     0.6     2016-06-27 CRAN (R 3.3.0)                           
 whoami         1.1.1   2015-07-13 CRAN (R 3.3.2)                           
 withr          1.0.2   2016-06-20 CRAN (R 3.3.1)                           
 xml2           1.1.1   2017-01-24 CRAN (R 3.3.2)                           
 xmlparsedata   1.0.1   2016-06-18 CRAN (R 3.3.2)   
danielsjf commented 7 years ago

I have the same issue when I try to run coverage <- covr::package_coverage(quiet = F) on the package NREL/rplexos (on GitHub)

jimhester commented 7 years ago

I believe this should be fixed by https://github.com/jimhester/covr/commit/a347d1458afce46fd4787f87f76a30924aedbf2b.

Please install the latest master, restart R and verify that is the case.