paleolimbot commented on issue #34211:
URL: https://github.com/apache/arrow/issues/34211#issuecomment-1458544045

   Brilliant! I had to download the file separately but this is fantastic.
   
   ```r
   library(tidyverse)
   library(arrow)
   
   # Download from:
   # 
https://download849.mediafire.com/r4csstfcwwwgGquvCho4H6GtScoCJac108RL-q6X9MtoWuPDQvZOQAWhxQqlCjLj2RmsyzikhTZ0ijBElIAs5in5whbp-w/7dk60h8gnj4n1qj/bioargo_correction_b.parquet
   file <- "~/Desktop/bioargo_correction_b.parquet"
   
   bioargo <- read_parquet(file)
   
   bioargo
   
   pdf(tempfile())
   bioargo |>
     group_by(takuse, date_time, n_prof) |>
     filter(pres == max(pres)) |>
     ggplot(aes(x = pres)) +
     geom_histogram(binwidth = 10, color = "white")
   dev.off()
   
   bioargo_dark_corrected <- bioargo |>
     group_by(takuse, date_time, n_prof) |>
     mutate(chla = chla - min(chla, na.rm = TRUE)) |>
     ungroup()
   
   write_parquet(bioargo_dark_corrected, tempfile())
   ```
   
   This reprex appears to crash R.
   See standard output and standard error for more details.
   
   #### Standard output and error
   
   ``` sh
   
    *** caught segfault ***
   address 0x18, cause 'invalid permissions'
   
   Traceback:
    1: Table__from_dots(dots, schema, option_use_threads())
    2: Table$create(x, schema = schema)
    3: as_arrow_table.data.frame(x)
    4: as_arrow_table(x)
    5: doTryCatch(return(expr), name, parentenv, handler)
    6: tryCatchOne(expr, names, parentenv, handlers[[1L]])
    7: tryCatchList(expr, classes, parentenv, handlers)
    8: tryCatch(as_arrow_table(x), arrow_no_method_as_arrow_table = function(e) 
{    abort("Object must be coercible to an Arrow Table using 
`as_arrow_table()`",         parent = e, call = caller_env(2))})
    9: as_writable_table(x)
   10: write_parquet(bioargo_dark_corrected, tempfile())
   11: eval(expr, envir, enclos)
   12: eval(expr, envir, enclos)
   13: eval_with_user_handlers(expr, envir, enclos, user_handlers)
   14: withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers))
   15: withCallingHandlers(withVisible(eval_with_user_handlers(expr,     envir, 
enclos, user_handlers)), warning = wHandler, error = eHandler,     message = 
mHandler)
   16: doTryCatch(return(expr), name, parentenv, handler)
   17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
   18: tryCatchList(expr, classes, parentenv, handlers)
   19: 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))})
   20: try(f, silent = TRUE)
   21: handle(ev <- 
withCallingHandlers(withVisible(eval_with_user_handlers(expr,     envir, 
enclos, user_handlers)), warning = wHandler, error = eHandler,     message = 
mHandler))
   22: timing_fn(handle(ev <- 
withCallingHandlers(withVisible(eval_with_user_handlers(expr,     envir, 
enclos, user_handlers)), warning = wHandler, error = eHandler,     message = 
mHandler)))
   23: 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)
   24: evaluate::evaluate(...)
   25: 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))
   26: in_dir(input_dir(), expr)
   27: 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)))
   28: eng_r(options)
   29: block_exec(params)
   30: call_block(x)
   31: process_group.block(group)
   32: process_group(group)
   33: 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"),             ") ")    })
   34: process_file(text, output)
   35: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
   36: rmarkdown::render(input, quiet = TRUE, envir = globalenv(), encoding = 
"UTF-8")
   37: (function (input) {    rmarkdown::render(input, quiet = TRUE, envir = 
globalenv(),         encoding = "UTF-8")})(input = 
base::quote("loyal-rat_reprex.R"))
   38: (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 = "loyal-rat_reprex.R")), envir = 
base::quote(<environment>),     quote = base::quote(TRUE))
   39: do.call(do.call, 
c(readRDS("/var/folders/p5/sxv05ml96sd1n2p3ssfhzzth0000gn/T//Rtmpod6Iee/callr-fun-768e1cc53b50"),
     list(envir = .GlobalEnv, quote = TRUE)), envir = .GlobalEnv,     quote = 
TRUE)
   40: saveRDS(do.call(do.call, 
c(readRDS("/var/folders/p5/sxv05ml96sd1n2p3ssfhzzth0000gn/T//Rtmpod6Iee/callr-fun-768e1cc53b50"),
     list(envir = .GlobalEnv, quote = TRUE)), envir = .GlobalEnv,     quote = 
TRUE), file = 
"/var/folders/p5/sxv05ml96sd1n2p3ssfhzzth0000gn/T//Rtmpod6Iee/callr-res-768e58b90ff1",
     compress = FALSE)
   41: withCallingHandlers({    NULL    saveRDS(do.call(do.call, 
c(readRDS("/var/folders/p5/sxv05ml96sd1n2p3ssfhzzth0000gn/T//Rtmpod6Iee/callr-fun-768e1cc53b50"),
         list(envir = .GlobalEnv, quote = TRUE)), envir = .GlobalEnv,         
quote = TRUE), file = 
"/var/folders/p5/sxv05ml96sd1n2p3ssfhzzth0000gn/T//Rtmpod6Iee/callr-res-768e58b90ff1",
         compress = FALSE)    flush(stdout())    flush(stderr())    NULL    
invisible()}, error = function(e) {    {        callr_data <- 
as.environment("tools:callr")$`__callr_data__`        err <- callr_data$err     
   if (FALSE) {            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 <- err$process_call(e)        e2 <- err$new_error("error in callr 
subprocess")        class(e2) <- c("callr_remote_error", class(e2))        
 e2 <- err$add_trace_back(e2)        cut <- which(e2$trace$scope == 
"global")[1]        if (!is.na(cut)) {            e2$trace <- 
e2$trace[-(1:cut), ]        }        saveRDS(list("error", e2, e), file = 
paste0("/var/folders/p5/sxv05ml96sd1n2p3ssfhzzth0000gn/T//Rtmpod6Iee/callr-res-768e58b90ff1",
             ".error"))    }}, interrupt = function(e) {    {        callr_data 
<- as.environment("tools:callr")$`__callr_data__`        err <- callr_data$err  
      if (FALSE) {            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 <- err$process_call(e)        e2 <- err$new_error("error in callr 
subprocess")        class(e2) <- c("callr_remote_error", class(e2))        e2 
<- err$add_trace_back(e2)        cut <- which(e2$trace$scope == "global")[1]    
    if (!is.na(cut)) { 
            e2$trace <- e2$trace[-(1:cut), ]        }        
saveRDS(list("error", e2, e), file = 
paste0("/var/folders/p5/sxv05ml96sd1n2p3ssfhzzth0000gn/T//Rtmpod6Iee/callr-res-768e58b90ff1",
             ".error"))    }}, callr_message = function(e) {    
try(signalCondition(e))})
   42: doTryCatch(return(expr), name, parentenv, handler)
   43: tryCatchOne(expr, names, parentenv, handlers[[1L]])
   44: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
   45: doTryCatch(return(expr), name, parentenv, handler)
   46: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]),    
 names[nh], parentenv, handlers[[nh]])
   47: tryCatchList(expr, classes, parentenv, handlers)
   48: tryCatch(withCallingHandlers({    NULL    saveRDS(do.call(do.call, 
c(readRDS("/var/folders/p5/sxv05ml96sd1n2p3ssfhzzth0000gn/T//Rtmpod6Iee/callr-fun-768e1cc53b50"),
         list(envir = .GlobalEnv, quote = TRUE)), envir = .GlobalEnv,         
quote = TRUE), file = 
"/var/folders/p5/sxv05ml96sd1n2p3ssfhzzth0000gn/T//Rtmpod6Iee/callr-res-768e58b90ff1",
         compress = FALSE)    flush(stdout())    flush(stderr())    NULL    
invisible()}, error = function(e) {    {        callr_data <- 
as.environment("tools:callr")$`__callr_data__`        err <- callr_data$err     
   if (FALSE) {            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 <- err$process_call(e)        e2 <- err$new_error("error in callr 
subprocess")        class(e2) <- c("callr_remote_error", class(e2)
 )        e2 <- err$add_trace_back(e2)        cut <- which(e2$trace$scope == 
"global")[1]        if (!is.na(cut)) {            e2$trace <- 
e2$trace[-(1:cut), ]        }        saveRDS(list("error", e2, e), file = 
paste0("/var/folders/p5/sxv05ml96sd1n2p3ssfhzzth0000gn/T//Rtmpod6Iee/callr-res-768e58b90ff1",
             ".error"))    }}, interrupt = function(e) {    {        callr_data 
<- as.environment("tools:callr")$`__callr_data__`        err <- callr_data$err  
      if (FALSE) {            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 <- err$process_call(e)        e2 <- err$new_error("error in callr 
subprocess")        class(e2) <- c("callr_remote_error", class(e2))        e2 
<- err$add_trace_back(e2)        cut <- which(e2$trace$scope == "global")[1]    
    if (!is.na
 (cut)) {            e2$trace <- e2$trace[-(1:cut), ]        }        
saveRDS(list("error", e2, e), file = 
paste0("/var/folders/p5/sxv05ml96sd1n2p3ssfhzzth0000gn/T//Rtmpod6Iee/callr-res-768e58b90ff1",
             ".error"))    }}, callr_message = function(e) {    
try(signalCondition(e))}), error = function(e) {    NULL    if (TRUE) {        
try(stop(e))    }    else {        invisible()    }}, interrupt = function(e) { 
   NULL    if (TRUE) {        e    }    else {        invisible()    }})
   An irrecoverable exception occurred. R is aborting now ...
   ```
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to