neurogenomics / EpiCompare

Comparison, benchmarking & QC of epigenetic datasets
https://doi.org/doi:10.18129/B9.bioc.EpiCompare
12 stars 3 forks source link

GHA Linux: `Error in grid.newpage(): could not open file ` #147

Closed bschilder closed 1 year ago

bschilder commented 1 year ago

1. Bug description

Error occurs on GHA Linux while trying to save the width_plot:

https://github.com/neurogenomics/EpiCompare/actions/runs/4195716011/jobs/7275652190

Console output

── Error ('test-EpiCompare.R:57'): All options FALSE, correct outputs generated ──
Error in `grid.newpage()`: could not open file '/tmp/RtmpIluRst/working_dir/RtmpAsy27V/EpiCompare_testthat/EpiCompare_file//tmp/RtmpIluRst/working_dir/RtmpAsy27V/EpiCompare_testthat/EpiCompare_file/width_plot.png'
Backtrace:
     ▆
  1. └─EpiCompare::EpiCompare(...) at test-EpiCompare.R:57:2
  2.   ├─rmarkdown::render(...)
  3.   │ └─knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
  4.   │   └─knitr:::process_file(text, output)
  5.   │     ├─base::withCallingHandlers(...)
  6.   │     ├─knitr:::process_group(group)
  7.   │     └─knitr:::process_group.block(group)
  8.   │       └─knitr:::call_block(x)
  9.   │         └─knitr:::block_exec(params)
 10.   │           └─knitr:::eng_r(options)
 11.   │             ├─knitr:::in_input_dir(...)
 12.   │             │ └─knitr:::in_dir(input_dir(), expr)
 13.   │             └─knitr (local) evaluate(...)
 14.   │               └─evaluate::evaluate(...)
 15.   │                 └─evaluate:::evaluate_call(...)
 16.   │                   ├─evaluate (local) timing_fn(...)
 17.   │                   ├─base (local) handle(...)
 18.   │                   ├─base::withCallingHandlers(...)
 19.   │                   ├─base::withVisible(...)
 20.   │                   └─evaluate:::eval_with_user_handlers(expr, envir, enclos, user_handlers)
 21.   │                     └─base::eval(expr, envir, enclos)
 22.   │                       └─base::eval(expr, envir, enclos)
 23.   └─EpiCompare:::save_output(...)
 24.     └─ggplot2::ggsave(...)
 25.       ├─grid::grid.draw(plot)
 26.       └─ggplot2:::grid.draw.ggplot(plot)
 27.         ├─base::print(x)
 28.         └─ggplot2:::print.ggplot(x)
 29.           └─grid::grid.newpage()

Expected behaviour

save_output saves plot across all platforms.

2. Reproducible example

Code

https://github.com/neurogenomics/EpiCompare/actions/runs/4195716011/jobs/7275652190

bschilder commented 1 year ago

Related issues:

bschilder commented 1 year ago

Slightly different but likely related error comes upon on GHA Mac: https://github.com/neurogenomics/EpiCompare/actions/runs/4195716011/jobs/7275652443

─ Error ('test-EpiCompare.R:57'): All options FALSE, correct outputs generated ──
Error in `grDevices::dev.off()`: QuartzBitmap_Output - unable to open file '/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T//RtmpQPBZSt/working_dir/RtmpEsuJaI/EpiCompare_testthat/EpiCompare_file//var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T//RtmpQPBZSt/working_dir/RtmpEsuJaI/EpiCompare_testthat/EpiCompare_file/width_plot.png'
Backtrace:
     ▆
  1. └─EpiCompare::EpiCompare(...) at test-EpiCompare.R:57:2
  2.   ├─rmarkdown::render(...)
  3.   │ └─knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
  4.   │   └─knitr:::process_file(text, output)
  5.   │     ├─base::withCallingHandlers(...)
  6.   │     ├─knitr:::process_group(group)
  7.   │     └─knitr:::process_group.block(group)
  8.   │       └─knitr:::call_block(x)
  9.   │         └─knitr:::block_exec(params)
 10.   │           └─knitr:::eng_r(options)
 11.   │             ├─knitr:::in_input_dir(...)
 12.   │             │ └─knitr:::in_dir(input_dir(), expr)
 13.   │             └─knitr (local) evaluate(...)
 14.   │               └─evaluate::evaluate(...)
 15.   │                 └─evaluate:::evaluate_call(...)
 16.   │                   ├─evaluate (local) timing_fn(...)
 17.   │                   ├─base (local) handle(...)
 18.   │                   ├─base::withCallingHandlers(...)
 19.   │                   ├─base::withVisible(...)
 20.   │                   └─evaluate:::eval_with_user_handlers(expr, envir, enclos, user_handlers)
 21.   │                     └─base::eval(expr, envir, enclos)
 22.   │                       └─base::eval(expr, envir, enclos)
 23.   └─EpiCompare:::save_output(...)
 24.     └─ggplot2::ggsave(...)
 25.       ├─utils::capture.output(...)
 26.       │ └─base::withVisible(...elt(i))
 27.       └─grDevices::dev.off()
bschilder commented 1 year ago

Might have to do with the settings on GHA's servers. Will try this suggestion: https://github.com/tidyverse/ggplot2/issues/2752#issuecomment-409028421

options(bitmapType = 'cairo', device = 'png')
bschilder commented 1 year ago

Might have to do with the settings on GHA's servers. Will try this suggestion: tidyverse/ggplot2#2752 (comment)

options(bitmapType = 'cairo', device = 'png')

No effect.

bschilder commented 1 year ago

While I'm figuring out this GHA-specific issue, I've manually rendered the updated website and pushed the changes to the gh-pages branch. https://neurogenomics.github.io/EpiCompare/articles/example_report.html

bschilder commented 1 year ago

Both Linux and Mac issues seem to have miraculously fixed themselves. 👼 🙏

https://github.com/neurogenomics/EpiCompare/actions/runs/4369856620