LucyMcGowan opened a new issue, #14826:
URL: https://github.com/apache/arrow/issues/14826

   ### Describe the bug, including details regarding any error messages, 
version, and platform.
   
   When I run the following example from the documentation, it seems to crash. 
   
   ```
   library(arrow)
   one_level_tree <- tempfile()
   write_dataset(mtcars, one_level_tree, partitioning = "cyl")
   ```
   
   This reprex appears to crash R.
   See standard output and standard error for more details.
   
   #### Standard output and error
   
   ``` sh
   ✖ Install the styler package in order to use `style = TRUE`.
   
    *** caught illegal operation ***
   address 0x11746ec1f, cause 'illegal opcode'
   
   Traceback:
    1: ExecPlan_Write(self, node, 
prepare_key_value_metadata(node$final_metadata()),     ...)
    2: plan$Write(final_node, options, path_and_fs$fs, path_and_fs$path,     
partitioning, basename_template, existing_data_behavior,     max_partitions, 
max_open_files, max_rows_per_file, min_rows_per_group,     max_rows_per_group)
    3: write_dataset(mtcars, one_level_tree, partitioning = "cyl")
    4: eval(expr, envir, enclos)
    5: eval(expr, envir, enclos)
    6: eval_with_user_handlers(expr, envir, enclos, user_handlers)
    7: withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers))
    8: withCallingHandlers(withVisible(eval_with_user_handlers(expr,     envir, 
enclos, user_handlers)), warning = wHandler, error = eHandler,     message = 
mHandler)
    9: doTryCatch(return(expr), name, parentenv, handler)
   10: tryCatchOne(expr, names, parentenv, handlers[[1L]])
   11: tryCatchList(expr, classes, parentenv, handlers)
   12: tryCatch(expr, error = function(e) {    call <- conditionCall(e)    if 
(!is.null(call)) {        if (identical(call[[1L]], quote(doTryCatch)))         
    call <- sys.call(-4L)        dcall <- deparse(call, nlines = 1L)        
prefix <- paste("Error in", dcall, ": ")        LONG <- 75L        sm <- 
strsplit(conditionMessage(e), "\n")[[1L]]        w <- 14L + nchar(dcall, type = 
"w") + nchar(sm[1L], type = "w")        if (is.na(w))             w <- 14L + 
nchar(dcall, type = "b") + nchar(sm[1L],                 type = "b")        if 
(w > LONG)             prefix <- paste0(prefix, "\n  ")    }    else prefix <- 
"Error : "    msg <- paste0(prefix, conditionMessage(e), "\n")    
.Internal(seterrmessage(msg[1L]))    if (!silent && 
isTRUE(getOption("show.error.messages"))) {        cat(msg, file = outFile)     
   .Internal(printDeferredWarnings())    }    invisible(structure(msg, class = 
"try-error", condition = e))})
   13: try(f, silent = TRUE)
   14: handle(ev <- 
withCallingHandlers(withVisible(eval_with_user_handlers(expr,     envir, 
enclos, user_handlers)), warning = wHandler, error = eHandler,     message = 
mHandler))
   15: timing_fn(handle(ev <- 
withCallingHandlers(withVisible(eval_with_user_handlers(expr,     envir, 
enclos, user_handlers)), warning = wHandler, error = eHandler,     message = 
mHandler)))
   16: 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,     output_handler = 
output_handler, include_timing = include_timing)
   17: evaluate::evaluate(...)
   18: evaluate(code, envir = env, new_device = FALSE, keep_warning = 
!isFALSE(options$warning),     keep_message = !isFALSE(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))
   19: in_dir(input_dir(), evaluate(code, envir = env, new_device = FALSE,     
keep_warning = !isFALSE(options$warning), keep_message = 
!isFALSE(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)))
   20: eng_r(options)
   21: block_exec(params)
   22: call_block(x)
   23: process_group.block(group)
   24: process_group(group)
   25: withCallingHandlers(if (tangle) process_tangle(group) else 
process_group(group),     error = function(e) {        setwd(wd)        
cat(res, sep = "\n", file = output %n% "")        message("Quitting from lines 
", paste(current_lines(i),             collapse = "-"), " (", 
knit_concord$get("infile"),             ") ")    })
   26: process_file(text, output)
   27: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
   28: rmarkdown::render(input, quiet = TRUE, envir = globalenv(), encoding = 
"UTF-8")
   29: (function (input) {    rmarkdown::render(input, quiet = TRUE, envir = 
globalenv(),         encoding = "UTF-8")})(input = 
base::quote("front-ray_reprex.R"))
   30: (function (what, args, quote = FALSE, envir = parent.frame()) {    if 
(!is.list(args))         stop("second argument must be a list")    if (quote)   
      args <- lapply(args, enquote)    .Internal(do.call(what, args, 
envir))})(base::quote(function (input) {    rmarkdown::render(input, quiet = 
TRUE, envir = globalenv(),         encoding = "UTF-8")}), 
base::quote(list(input = "front-ray_reprex.R")), envir = 
base::quote(<environment>),     quote = base::quote(TRUE))
   31: do.call(do.call, 
c(readRDS("/var/folders/mr/lk15_b411zb85y6q_wwbd_k00000gn/T//Rtmpxx5I9t/callr-fun-826a2a4df8"),
     list(envir = .GlobalEnv, quote = TRUE)), envir = .GlobalEnv,     quote = 
TRUE)
   32: saveRDS(do.call(do.call, 
c(readRDS("/var/folders/mr/lk15_b411zb85y6q_wwbd_k00000gn/T//Rtmpxx5I9t/callr-fun-826a2a4df8"),
     list(envir = .GlobalEnv, quote = TRUE)), envir = .GlobalEnv,     quote = 
TRUE), file = 
"/var/folders/mr/lk15_b411zb85y6q_wwbd_k00000gn/T//Rtmpxx5I9t/callr-res-827f650b3b")
   33: withCallingHandlers({    NULL    saveRDS(do.call(do.call, 
c(readRDS("/var/folders/mr/lk15_b411zb85y6q_wwbd_k00000gn/T//Rtmpxx5I9t/callr-fun-826a2a4df8"),
         list(envir = .GlobalEnv, quote = TRUE)), envir = .GlobalEnv,         
quote = TRUE), file = 
"/var/folders/mr/lk15_b411zb85y6q_wwbd_k00000gn/T//Rtmpxx5I9t/callr-res-827f650b3b")
    flush(stdout())    flush(stderr())    NULL    invisible()}, error = 
function(e) {    {        callr_data <- 
as.environment("tools:callr")$`__callr_data__`        err <- callr_data$err     
   assign(".Traceback", .traceback(4), envir = callr_data)        
dump.frames("__callr_dump__")        assign(".Last.dump", 
.GlobalEnv$`__callr_dump__`, envir = callr_data)        rm("__callr_dump__", 
envir = .GlobalEnv)        e$call <- deparse(conditionCall(e), nlines = 6)      
  e2 <- err$new_error(conditionMessage(e), call. = conditionCall(e))        
class(e2) <- c("callr_remote_error", class(e2))        e2$error <- e        
calls <- sys.calls()        d
 cframe <- which(vapply(calls, function(x) length(x) >=             1 && 
identical(x[[1]], quote(do.call)), logical(1)))[1]        if (!is.na(dcframe))  
           e2$`_ignore` <- list(c(1, dcframe + 1L))        e2$`_pid` <- 
Sys.getpid()        e2$`_timestamp` <- Sys.time()        if (inherits(e, 
"rlib_error_2_0"))             e2$parent <- e$parent        e2 <- 
err$add_trace_back(e2, embed = FALSE)        saveRDS(list("error", e2), file = 
paste0("/var/folders/mr/lk15_b411zb85y6q_wwbd_k00000gn/T//Rtmpxx5I9t/callr-res-827f650b3b",
             ".error"))    }}, interrupt = function(e) {    {        callr_data 
<- as.environment("tools:callr")$`__callr_data__`        err <- callr_data$err  
      assign(".Traceback", .traceback(4), envir = callr_data)        
dump.frames("__callr_dump__")        assign(".Last.dump", 
.GlobalEnv$`__callr_dump__`, envir = callr_data)        rm("__callr_dump__", 
envir = .GlobalEnv)        e$call <- deparse(conditionCall(e), nlines = 6)      
  e2 <- err$new_erro
 r(conditionMessage(e), call. = conditionCall(e))        class(e2) <- 
c("callr_remote_error", class(e2))        e2$error <- e        calls <- 
sys.calls()        dcframe <- which(vapply(calls, function(x) length(x) >=      
       1 && identical(x[[1]], quote(do.call)), logical(1)))[1]        if 
(!is.na(dcframe))             e2$`_ignore` <- list(c(1, dcframe + 1L))        
e2$`_pid` <- Sys.getpid()        e2$`_timestamp` <- Sys.time()        if 
(inherits(e, "rlib_error_2_0"))             e2$parent <- e$parent        e2 <- 
err$add_trace_back(e2, embed = FALSE)        saveRDS(list("error", e2), file = 
paste0("/var/folders/mr/lk15_b411zb85y6q_wwbd_k00000gn/T//Rtmpxx5I9t/callr-res-827f650b3b",
             ".error"))    }}, callr_message = function(e) {    
try(signalCondition(e))})
   34: doTryCatch(return(expr), name, parentenv, handler)
   35: tryCatchOne(expr, names, parentenv, handlers[[1L]])
   36: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
   37: doTryCatch(return(expr), name, parentenv, handler)
   38: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]),    
 names[nh], parentenv, handlers[[nh]])
   39: tryCatchList(expr, classes, parentenv, handlers)
   40: tryCatch(withCallingHandlers({    NULL    saveRDS(do.call(do.call, 
c(readRDS("/var/folders/mr/lk15_b411zb85y6q_wwbd_k00000gn/T//Rtmpxx5I9t/callr-fun-826a2a4df8"),
         list(envir = .GlobalEnv, quote = TRUE)), envir = .GlobalEnv,         
quote = TRUE), file = 
"/var/folders/mr/lk15_b411zb85y6q_wwbd_k00000gn/T//Rtmpxx5I9t/callr-res-827f650b3b")
    flush(stdout())    flush(stderr())    NULL    invisible()}, error = 
function(e) {    {        callr_data <- 
as.environment("tools:callr")$`__callr_data__`        err <- callr_data$err     
   assign(".Traceback", .traceback(4), envir = callr_data)        
dump.frames("__callr_dump__")        assign(".Last.dump", 
.GlobalEnv$`__callr_dump__`, envir = callr_data)        rm("__callr_dump__", 
envir = .GlobalEnv)        e$call <- deparse(conditionCall(e), nlines = 6)      
  e2 <- err$new_error(conditionMessage(e), call. = conditionCall(e))        
class(e2) <- c("callr_remote_error", class(e2))        e2$error <- e        
calls <- sys.calls()
         dcframe <- which(vapply(calls, function(x) length(x) >=             1 
&& identical(x[[1]], quote(do.call)), logical(1)))[1]        if 
(!is.na(dcframe))             e2$`_ignore` <- list(c(1, dcframe + 1L))        
e2$`_pid` <- Sys.getpid()        e2$`_timestamp` <- Sys.time()        if 
(inherits(e, "rlib_error_2_0"))             e2$parent <- e$parent        e2 <- 
err$add_trace_back(e2, embed = FALSE)        saveRDS(list("error", e2), file = 
paste0("/var/folders/mr/lk15_b411zb85y6q_wwbd_k00000gn/T//Rtmpxx5I9t/callr-res-827f650b3b",
             ".error"))    }}, interrupt = function(e) {    {        callr_data 
<- as.environment("tools:callr")$`__callr_data__`        err <- callr_data$err  
      assign(".Traceback", .traceback(4), envir = callr_data)        
dump.frames("__callr_dump__")        assign(".Last.dump", 
.GlobalEnv$`__callr_dump__`, envir = callr_data)        rm("__callr_dump__", 
envir = .GlobalEnv)        e$call <- deparse(conditionCall(e), nlines = 6)      
  e2 <- err
 $new_error(conditionMessage(e), call. = conditionCall(e))        class(e2) <- 
c("callr_remote_error", class(e2))        e2$error <- e        calls <- 
sys.calls()        dcframe <- which(vapply(calls, function(x) length(x) >=      
       1 && identical(x[[1]], quote(do.call)), logical(1)))[1]        if 
(!is.na(dcframe))             e2$`_ignore` <- list(c(1, dcframe + 1L))        
e2$`_pid` <- Sys.getpid()        e2$`_timestamp` <- Sys.time()        if 
(inherits(e, "rlib_error_2_0"))             e2$parent <- e$parent        e2 <- 
err$add_trace_back(e2, embed = FALSE)        saveRDS(list("error", e2), file = 
paste0("/var/folders/mr/lk15_b411zb85y6q_wwbd_k00000gn/T//Rtmpxx5I9t/callr-res-827f650b3b",
             ".error"))    }}, callr_message = function(e) {    
try(signalCondition(e))}), error = function(e) {    NULL    try(stop(e))}, 
interrupt = function(e) {    NULL    e})
   An irrecoverable exception occurred. R is aborting now ...
   ```
   
   ```
   devtools::session_info()
   ─ Session info 
─────────────────────────────────────────────────────────────────
    setting  value
    version  R version 4.1.2 (2021-11-01)
    os       macOS Monterey 12.6
    system   x86_64, darwin17.0
    ui       RStudio
    language (EN)
    collate  en_US.UTF-8
    ctype    en_US.UTF-8
    tz       America/New_York
    date     2022-12-02
    rstudio  2022.07.1+554 Spotted Wakerobin (desktop)
    pandoc   2.18 @ /Applications/RStudio.app/Contents/MacOS/quarto/bin/tools/ 
(via rmarkdown)
   
   ─ Packages 
─────────────────────────────────────────────────────────────────────
    package     * version date (UTC) lib source
    arrow       * 10.0.0  2022-10-26 [1] CRAN (R 4.1.2)
    assertthat    0.2.1   2019-03-21 [1] CRAN (R 4.1.0)
    backports     1.4.1   2021-12-13 [1] CRAN (R 4.1.0)
    base64url     1.4     2018-05-14 [1] CRAN (R 4.1.0)
    bit           4.0.5   2022-11-15 [1] CRAN (R 4.1.2)
    bit64         4.0.5   2020-08-30 [1] CRAN (R 4.1.0)
    brio          1.1.3   2021-11-30 [1] CRAN (R 4.1.0)
    cachem        1.0.6   2021-08-19 [1] CRAN (R 4.1.0)
    callr         3.7.0   2021-04-20 [1] CRAN (R 4.1.0)
    cli           3.4.1   2022-09-23 [1] CRAN (R 4.1.2)
    clipr         0.7.1   2020-10-08 [1] CRAN (R 4.1.0)
    codetools     0.2-18  2020-11-04 [1] CRAN (R 4.1.2)
    crayon        1.4.2   2021-10-29 [1] CRAN (R 4.1.0)
    data.table    1.14.2  2021-09-27 [1] CRAN (R 4.1.0)
    desc          1.4.0   2021-09-28 [1] CRAN (R 4.1.0)
    devtools      2.4.3   2021-11-30 [1] CRAN (R 4.1.0)
    digest        0.6.29  2021-12-01 [1] CRAN (R 4.1.0)
    ellipsis      0.3.2   2021-04-29 [1] CRAN (R 4.1.0)
    evaluate      0.15    2022-02-18 [1] CRAN (R 4.1.2)
    fansi         1.0.2   2022-01-14 [1] CRAN (R 4.1.2)
    fastmap       1.1.0   2021-01-25 [1] CRAN (R 4.1.0)
    fs            1.5.2   2021-12-08 [1] CRAN (R 4.1.0)
    future        1.29.0  2022-11-06 [1] CRAN (R 4.1.2)
    globals       0.16.2  2022-11-21 [1] CRAN (R 4.1.2)
    glue          1.6.2   2022-02-24 [1] CRAN (R 4.1.2)
    highr         0.9     2021-04-16 [1] CRAN (R 4.1.0)
    htmltools     0.5.2   2021-08-25 [1] CRAN (R 4.1.0)
    igraph        1.2.11  2022-01-04 [1] CRAN (R 4.1.2)
    knitr         1.37    2021-12-16 [1] CRAN (R 4.1.0)
    lifecycle     1.0.3   2022-10-07 [1] CRAN (R 4.1.2)
    listenv       0.8.0   2019-12-05 [1] CRAN (R 4.1.0)
    magrittr      2.0.3   2022-03-30 [1] CRAN (R 4.1.2)
    memoise       2.0.1   2021-11-26 [1] CRAN (R 4.1.0)
    parallelly    1.32.1  2022-07-21 [1] CRAN (R 4.1.2)
    pillar        1.7.0   2022-02-01 [1] CRAN (R 4.1.2)
    pkgbuild      1.3.1   2021-12-20 [1] CRAN (R 4.1.0)
    pkgconfig     2.0.3   2019-09-22 [1] CRAN (R 4.1.0)
    pkgload       1.2.4   2021-11-30 [1] CRAN (R 4.1.0)
    prettyunits   1.1.1   2020-01-24 [1] CRAN (R 4.1.0)
    processx      3.5.2   2021-04-30 [1] CRAN (R 4.1.0)
    ps            1.6.0   2021-02-28 [1] CRAN (R 4.1.0)
    purrr         0.3.5   2022-10-06 [1] CRAN (R 4.1.2)
    R6            2.5.1   2021-08-19 [1] CRAN (R 4.1.0)
    remotes       2.4.2   2021-11-30 [1] CRAN (R 4.1.0)
    reprex        2.0.1   2021-08-05 [1] CRAN (R 4.1.0)
    rlang         1.0.6   2022-09-24 [1] CRAN (R 4.1.2)
    rmarkdown     2.11    2021-09-14 [1] CRAN (R 4.1.0)
    rprojroot     2.0.2   2020-11-15 [1] CRAN (R 4.1.0)
    rstudioapi    0.13    2020-11-12 [1] CRAN (R 4.1.0)
    sessioninfo   1.2.2   2021-12-06 [1] CRAN (R 4.1.0)
    targets       0.14.1  2022-11-29 [1] CRAN (R 4.1.2)
    testthat      3.1.2   2022-01-20 [1] CRAN (R 4.1.2)
    tibble        3.1.8   2022-07-22 [1] CRAN (R 4.1.2)
    tidyselect    1.2.0   2022-10-10 [1] CRAN (R 4.1.2)
    usethis       2.1.5   2021-12-09 [1] CRAN (R 4.1.0)
    utf8          1.2.2   2021-07-24 [1] CRAN (R 4.1.0)
    vctrs         0.5.1   2022-11-16 [1] CRAN (R 4.1.2)
    withr         2.5.0   2022-03-03 [1] CRAN (R 4.1.2)
    xfun          0.29    2021-12-14 [1] CRAN (R 4.1.0)
    yaml          2.3.4   2022-02-17 [1] CRAN (R 4.1.2)
   
    [1] /Library/Frameworks/R.framework/Versions/4.1/Resources/library
   ```
   
   ### Component(s)
   
   R


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@arrow.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to