kou commented on PR #45306:
URL: https://github.com/apache/arrow/pull/45306#issuecomment-2961585552

   > Most CI failures look unrelated. The UWSGI crash on Python CI jobs may be 
related, but I don't think we want to block the PR for that.
   
   It seems that R related failures are also related...
   
   For example: 
https://github.com/ursacomputing/crossbow/actions/runs/15573108955/job/43852923640
   
   ```text
   Start test: Can read CSV files from a URL
   
    *** caught segfault ***
   address 0x18, cause 'memory not mapped'
   
   Traceback:
    1: dyn.load(file, DLLpath = DLLpath, ...)
    2: library.dynam(lib, package, package.lib)
    3: loadNamespace(package, ...)
    4: doTryCatch(return(expr), name, parentenv, handler)
    5: tryCatchOne(expr, names, parentenv, handlers[[1L]])
    6: tryCatchList(expr, classes, parentenv, handlers)
    7: tryCatch(loadNamespace(package, ...), error = function(e) e)
    8: requireNamespace(pkg, quietly = TRUE)
    9: (function (pkg, cmp, ver) {    if (is_string(pkg, "base")) {        
is_fully_loaded <- TRUE    }    else {        is_fully_loaded <- 
is_on_disk(pkg)        is_fully_loaded <- is_fully_loaded && 
requireNamespace(pkg,             quietly = TRUE) && env_is_locked(ns_env(pkg)) 
   }    if (is_fully_loaded) {        is_na(ver) || exec(cmp, 
utils::packageVersion(pkg), ver)    }    else {        FALSE    }})(pkg = 
dots[[1L]][[1L]], cmp = dots[[2L]][[1L]], ver = dots[[3L]][[1L]])
   10: mapply(FUN = .f, pkg = "curl", cmp = NA_character_, ver = NA_character_, 
    MoreArgs = list(...), SIMPLIFY = FALSE, USE.NAMES = FALSE)
   11: do.call("mapply", c(FUN = list(quote(.f)), args, MoreArgs = 
quote(list(...)),     SIMPLIFY = FALSE, USE.NAMES = FALSE))
   12: pmap(info, function(pkg, cmp, ver) {    if (is_string(pkg, "base")) {    
    is_fully_loaded <- TRUE    }    else {        is_fully_loaded <- 
is_on_disk(pkg)        is_fully_loaded <- is_fully_loaded && 
requireNamespace(pkg,             quietly = TRUE) && env_is_locked(ns_env(pkg)) 
   }    if (is_fully_loaded) {        is_na(ver) || exec(cmp, 
utils::packageVersion(pkg), ver)    }    else {        FALSE    }})
   13: enexpr(expr)
   14: inject(c(!!!x))
   15: list_c(pmap(info, function(pkg, cmp, ver) {    if (is_string(pkg, 
"base")) {        is_fully_loaded <- TRUE    }    else {        is_fully_loaded 
<- is_on_disk(pkg)        is_fully_loaded <- is_fully_loaded && 
requireNamespace(pkg,             quietly = TRUE) && env_is_locked(ns_env(pkg)) 
   }    if (is_fully_loaded) {        is_na(ver) || exec(cmp, 
utils::packageVersion(pkg), ver)    }    else {        FALSE    }}))
   16: detect_installed(info)
   17: check_installed("curl")
   18: skip_if_offline()
   19: eval(code, test_env)
   20: eval(code, test_env)
   21: withCallingHandlers({    eval(code, test_env)    if (!handled && 
!is.null(test)) {        skip_empty()    }}, expectation = handle_expectation, 
skip = handle_skip, warning = handle_warning,     message = handle_message, 
error = handle_error)
   22: doTryCatch(return(expr), name, parentenv, handler)
   23: tryCatchOne(expr, names, parentenv, handlers[[1L]])
   24: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
   25: doTryCatch(return(expr), name, parentenv, handler)
   26: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]),    
 names[nh], parentenv, handlers[[nh]])
   27: tryCatchList(expr, classes, parentenv, handlers)
   28: tryCatch(withCallingHandlers({    eval(code, test_env)    if (!handled 
&& !is.null(test)) {        skip_empty()    }}, expectation = 
handle_expectation, skip = handle_skip, warning = handle_warning,     message = 
handle_message, error = handle_error), error = handle_fatal,     skip = 
function(e) {    })
   29: test_code(desc, code, env = parent.frame(), reporter = reporter)
   30: test_that("Can read CSV files from a URL", {    skip_if_offline()    
skip_on_cran()    csv_url <- 
"https://raw.githubusercontent.com/apache/arrow-testing/master/data/csv/aggregate_test_100.csv";
    cu <- read_csv_arrow(csv_url)    expect_true(tibble::is_tibble(cu))    
expect_identical(dim(cu), c(100L, 13L))})
   31: eval(code, test_env)
   32: eval(code, test_env)
   33: withCallingHandlers({    eval(code, test_env)    if (!handled && 
!is.null(test)) {        skip_empty()    }}, expectation = handle_expectation, 
skip = handle_skip, warning = handle_warning,     message = handle_message, 
error = handle_error)
   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({    eval(code, test_env)    if (!handled 
&& !is.null(test)) {        skip_empty()    }}, expectation = 
handle_expectation, skip = handle_skip, warning = handle_warning,     message = 
handle_message, error = handle_error), error = handle_fatal,     skip = 
function(e) {    })
   41: test_code(test = NULL, code = exprs, env = env, reporter = 
get_reporter() %||%     StopReporter$new())
   42: source_file(path, env = env(env), desc = desc, error_call = error_call)
   43: FUN(X[[i]], ...)
   44: lapply(test_paths, test_one_file, env = env, desc = desc, error_call = 
error_call)
   45: doTryCatch(return(expr), name, parentenv, handler)
   46: tryCatchOne(expr, names, parentenv, handlers[[1L]])
   47: tryCatchList(expr, classes, parentenv, handlers)
   48: tryCatch(code, testthat_abort_reporter = function(cnd) {    
cat(conditionMessage(cnd), "\n")    NULL})
   49: with_reporter(reporters$multi, lapply(test_paths, test_one_file,     env 
= env, desc = desc, error_call = error_call))
   50: test_files_serial(test_dir = test_dir, test_package = test_package,     
test_paths = test_paths, load_helpers = load_helpers, reporter = reporter,     
env = env, stop_on_failure = stop_on_failure, stop_on_warning = 
stop_on_warning,     desc = desc, load_package = load_package, error_call = 
error_call)
   51: test_files(test_dir = path, test_paths = test_paths, test_package = 
package,     reporter = reporter, load_helpers = load_helpers, env = env,     
stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning,     
load_package = load_package, parallel = parallel)
   52: test_dir("testthat", package = package, reporter = reporter,     ..., 
load_package = "installed")
   53: test_check("arrow", reporter = arrow_reporter)
   An irrecoverable exception occurred. R is aborting now ...
   Segmentation fault (core dumped)
   ```
   
   But I don't know how to run a debugger for R tests...
   
   Can we work on these R failures as follow-up tasks too?


-- 
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