CRAN Package Check Results for Package rcdf

Last updated on 2025-11-25 17:50:02 CET.

Flavor Version Tinstall Tcheck Ttotal Status Flags
r-devel-linux-x86_64-debian-clang 0.1.1 2.49 147.38 149.87 OK
r-devel-linux-x86_64-debian-gcc 0.1.1 2.00 229.10 231.10 OK
r-devel-linux-x86_64-fedora-clang 0.1.1 11.00 54.97 65.97 ERROR
r-devel-linux-x86_64-fedora-gcc 0.1.1 91.56 OK
r-devel-windows-x86_64 0.1.1 7.00 67.00 74.00 OK
r-patched-linux-x86_64 0.1.1 2.94 229.53 232.47 OK
r-release-linux-x86_64 0.1.1 2.19 136.24 138.43 OK
r-release-macos-arm64 0.1.1 OK
r-release-macos-x86_64 0.1.1 1.00 45.00 46.00 OK
r-release-windows-x86_64 0.1.1 4.00 78.00 82.00 OK
r-oldrel-macos-arm64 0.1.1 OK
r-oldrel-macos-x86_64 0.1.1 1.00 76.00 77.00 OK
r-oldrel-windows-x86_64 0.1.1 5.00 80.00 85.00 OK

Check Details

Version: 0.1.1
Check: examples
Result: ERROR Running examples in ‘rcdf-Ex.R’ failed The error most likely occurred in: > ### Name: write_parquet > ### Title: Write Parquet file with optional encryption > ### Aliases: write_parquet > > ### ** Examples > > > data <- mtcars > key <- "5bddd0ea4ab48ed5e33b1406180d68158aa255cf3f368bdd4744abc1a7909ead" > iv <- "7D3EF463F4CCD81B11B6EC3230327B2D" > > temp_dir <- tempdir() > > rcdf::write_parquet( + data = data, + path = file.path(temp_dir, "mtcars.parquet"), + encryption_key = list(aes_key = key, aes_iv = iv) + ) Error in `duckdb_result()`: ! Invalid Error: Invalid Configuration Error: DuckDB requires a secure random engine to be loaded to enable secure crypto. Normally, this will be handled automatically by DuckDB by autoloading the `httpfs` Extension, but that seems to have failed. Please ensure the httpfs extension is loaded manually using `LOAD httpfs`. ℹ Context: rapi_execute ℹ Error type: INVALID ℹ Raw message: Invalid Configuration Error: DuckDB requires a secure random engine to be loaded to enable secure crypto. Normally, this will be handled automatically by DuckDB by autoloading the `httpfs` Extension, but that seems to have failed. Please ensure the httpfs extension is loaded manually using `LOAD httpfs`. Backtrace: ▆ 1. ├─rcdf::write_parquet(...) 2. │ ├─DBI::dbExecute(conn = pq_conn, statement = pq_query) 3. │ └─DBI::dbExecute(conn = pq_conn, statement = pq_query) 4. │ ├─DBI::dbSendStatement(conn, statement, ...) 5. │ └─DBI::dbSendStatement(conn, statement, ...) 6. │ ├─DBI::dbSendQuery(conn, statement, ...) 7. │ └─duckdb::dbSendQuery(conn, statement, ...) 8. │ └─duckdb (local) .local(conn, statement, ...) 9. │ └─duckdb:::duckdb_result(connection = conn, stmt_lst = stmt_lst, arrow = arrow) 10. │ └─duckdb:::duckdb_execute(res) 11. │ └─duckdb:::rethrow_rapi_execute(...) 12. │ ├─rlang::try_fetch(...) 13. │ │ ├─base::tryCatch(...) 14. │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 15. │ │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 16. │ │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 17. │ │ └─base::withCallingHandlers(...) 18. │ └─duckdb:::rapi_execute(stmt, convert_opts) 19. ├─duckdb (local) `<fn>`(...) 20. │ └─rlang::abort(error_parts, class = "duckdb_error", !!!fields) 21. │ └─rlang:::signal_abort(cnd, .file) 22. │ └─base::signalCondition(cnd) 23. └─rlang (local) `<fn>`(`<dckdb_rr>`) 24. └─handlers[[1L]](cnd) 25. └─duckdb:::rethrow_error_from_rapi(e, call) 26. └─rlang::abort(msg, call = call) Execution halted Flavor: r-devel-linux-x86_64-fedora-clang

Version: 0.1.1
Check: tests
Result: ERROR Running ‘testthat.R’ [6s/22s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > # This file is part of the standard setup for testthat. > # It is recommended that you do not modify it. > # > # Where should you do additional test configuration? > # Learn more about the roles of various files in: > # * https://r-pkgs.org/testing-design.html#sec-tests-files-overview > # * https://testthat.r-lib.org/articles/special-files.html > > library(testthat) > library(rcdf) > > test_check("rcdf") *** caught segfault *** address 0x5, cause 'memory not mapped' Traceback: 1: rapi_execute(stmt, convert_opts) 2: withCallingHandlers(expr, condition = function(cnd) { { .__handler_frame__. <- TRUE .__setup_frame__. <- frame if (inherits(cnd, "message")) { except <- c("warning", "error") } else if (inherits(cnd, "warning")) { except <- "error" } else { except <- "" } } while (!is_null(cnd)) { if (inherits(cnd, "error")) { out <- handlers[[1L]](cnd) if (!inherits(out, "rlang_zap")) throw(out) } inherit <- .subset2(.subset2(cnd, "rlang"), "inherit") if (is_false(inherit)) { return() } cnd <- .subset2(cnd, "parent") }}) 3: doTryCatch(return(expr), name, parentenv, handler) 4: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 5: tryCatchList(expr, classes, parentenv, handlers) 6: tryCatch(withCallingHandlers(expr, condition = function(cnd) { { .__handler_frame__. <- TRUE .__setup_frame__. <- frame if (inherits(cnd, "message")) { except <- c("warning", "error") } else if (inherits(cnd, "warning")) { except <- "error" } else { except <- "" } } while (!is_null(cnd)) { if (inherits(cnd, "error")) { out <- handlers[[1L]](cnd) if (!inherits(out, "rlang_zap")) throw(out) } inherit <- .subset2(.subset2(cnd, "rlang"), "inherit") if (is_false(inherit)) { return() } cnd <- .subset2(cnd, "parent") }}), stackOverflowError = handlers[[1L]]) 7: rlang::try_fetch(rapi_execute(stmt, convert_opts), error = function(e) { rethrow_error_from_rapi(e, call)}) 8: rethrow_rapi_execute(res@stmt_lst$ref, duckdb_convert_opts_impl(res@connection@convert_opts, arrow = res@arrow)) 9: duckdb_execute(res) 10: duckdb_result(connection = conn, stmt_lst = stmt_lst, arrow = arrow) 11: .local(conn, statement, ...) 12: dbSendQuery(conn, statement, ...) 13: dbSendQuery(conn, statement, ...) 14: dbSendStatement(conn, statement, ...) 15: dbSendStatement(conn, statement, ...) 16: DBI::dbExecute(conn = pq_conn, statement = pq_query) 17: DBI::dbExecute(conn = pq_conn, statement = pq_query) 18: write_parquet(data, temp_file, encryption_key = mock_aes_key) 19: eval(code, test_env) 20: eval(code, test_env) 21: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt) 22: doTryCatch(return(expr), name, parentenv, handler) 23: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 24: tryCatchList(expr, classes, parentenv, handlers) 25: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal) 26: doWithOneRestart(return(expr), restart) 27: withOneRestart(expr, restarts[[1L]]) 28: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { }) 29: test_code(code, parent.frame()) 30: test_that("read_parquet reads encrypted Parquet file with decryption", { data <- tibble::tibble(a = 1:5, b = letters[1:5]) temp_file <- tempfile(fileext = ".parquet") write_parquet(data, temp_file, encryption_key = mock_aes_key) result <- read_parquet(temp_file, decryption_key = mock_aes_key) expect_true(inherits(result, "ArrowObject")) expect_equal(nrow(result), 5) expect_equal(ncol(result), 2) unlink(temp_file, recursive = T, force = T) }) 31: eval(code, test_env) 32: eval(code, test_env) 33: withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt) 34: doTryCatch(return(expr), name, parentenv, handler) 35: tryCatchOne(expr, names, parentenv, handlers[[1L]]) 36: tryCatchList(expr, classes, parentenv, handlers) 37: tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal) 38: doWithOneRestart(return(expr), restart) 39: withOneRestart(expr, restarts[[1L]]) 40: withRestarts(tryCatch(withCallingHandlers({ eval(code, test_env) new_expectations <- the$test_expectations > starting_expectations if (snapshot_skipped) { skip("On CRAN") } else if (!new_expectations && skip_on_empty) { skip_empty() }}, expectation = handle_expectation, packageNotFoundError = function(e) { if (on_cran()) { skip(paste0("{", e$package, "} is not installed.")) }}, snapshot_on_cran = function(cnd) { snapshot_skipped <<- TRUE invokeRestart("muffle_cran_snapshot")}, skip = handle_skip, warning = handle_warning, message = handle_message, error = handle_error, interrupt = handle_interrupt), error = handle_fatal), end_test = function() { }) 41: test_code(code = exprs, env = env, reporter = get_reporter() %||% StopReporter$new()) 42: source_file(path, env = env(env), desc = desc, shuffle = shuffle, error_call = error_call) 43: FUN(X[[i]], ...) 44: lapply(test_paths, test_one_file, env = env, desc = desc, shuffle = shuffle, 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, shuffle = shuffle, 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, shuffle = shuffle, 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, shuffle = shuffle) 52: test_dir("testthat", package = package, reporter = reporter, ..., load_package = "installed") 53: test_check("rcdf") An irrecoverable exception occurred. R is aborting now ... Flavor: r-devel-linux-x86_64-fedora-clang