Skip to content

Caught segfault error on version 1.0.9 when running in Rmarkdown #500

@Mosk915

Description

@Mosk915

I am on version 1.0.9 of gganimate and getting a segfault error when I try to save an animation via anim_save but only when via Rmarkdown. All packages installed are on their latest CRAN version. When rolling gganimate back to version 1.0.8, there is no issue.

Here is a reproducible example.

---
title: "gganimate"
---

```{r}
library(gganimate)

anim <- ggplot(mtcars, aes(mpg, disp)) +
  transition_states(gear, transition_length = 2, state_length = 1) +
  enter_fade() +
  exit_fade()

anim_save(animation = anim, filename = tempfile(), renderer = magick_renderer())
```

Here is the full error.

*** caught segfault ***
address (nil), cause 'memory not mapped'

Traceback:
1: magick_image_write(image, format, quality, depth, density, comment, compression)
2: magick::image_write(animation, file)
3: `save_animation.magick-image`(animation, filename)
4: save_animation(animation, filename)
5: anim_save(animation = anim, filename = tempfile(), renderer = magick_renderer())
6: eval(expr, envir, enclos)
7: eval(expr, envir, enclos)
8: eval_with_user_handlers(expr, envir, enclos, user_handlers)
9: withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers))
10: withCallingHandlers(withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers)), warning = wHandler, error = eHandler, message = mHandler)
11: handle(ev <- withCallingHandlers(withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers)), warning = wHandler, error = eHandler, message = mHandler))
12: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers)), warning = wHandler, error = eHandler, message = mHandler)))
13: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, debug = debug, last = i == length(out), use_try = stop_on_error != 2L, keep_warning = keep_warning, keep_message = keep_message, log_echo = log_echo, log_warning = log_warning, output_handler = output_handler, include_timing = include_timing)
14: evaluate::evaluate(...)
15: evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options))
16: in_dir(input_dir(), expr)
17: in_input_dir(evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options)))
18: eng_r(options)
19: block_exec(params)
20: call_block(x)
21: process_group(group)
22: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) if (xfun::pkg_available("rlang", "1.0.0")) rlang::entrace(e))
23: xfun:::handle_error(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) if (xfun::pkg_available("rlang", "1.0.0")) rlang::entrace(e)), function(loc) { setwd(wd) write_utf8(res, output %n% stdout()) paste0("\nQuitting from lines ", loc) }, if (labels[i] != "") sprintf(" [%s]", labels[i]), get_loc)
24: process_file(text, output)
25: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
26: rmarkdown::render("/home/user/gganimate/gganimate.Rmd", encoding = "UTF-8")
An irrecoverable exception occurred. R is aborting now ...

If it's useful to know, my operating system is Ubuntu 20.04.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions