Running ‘testthat.R’ [17s/37s]
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(ragnar)
  > 
  > test_check("ragnar")
  
   *** caught segfault ***
  address 0x53a69fe44, 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: dbExecute(con, "LOAD vss;")
  17: dbExecute(con, "LOAD vss;")
  18: ragnar_store_build_index(store)
  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("retrieving works as expected", {    store <- ragnar_store_create(embed = function(x) matrix(nrow = length(x),         ncol = 100, stats::runif(100)))    maybe_set_threads(store)    chunks <- data.frame(text = c("foo", "bar", "faz"))    ragnar_store_insert(store, chunks)    ragnar_store_build_index(store)    ret <- ragnar_retrieve_vss(store, "hello")    expect_in("metric_value", names(ret))    expect_in("metric_name", names(ret))    expect_equal(nrow(ret), 3)    expect_true(all(setdiff(names(store@schema), "embedding") %in%         names(ret)))    ret <- ragnar_retrieve_vss(store, "hello", top_k = 10)    expect_equal(nrow(ret), 3)    ret <- ragnar_retrieve_bm25(store, "foo")    expect_in("metric_value", names(ret))    expect_in("metric_name", names(ret))    expect_equal(nrow(ret), 1)    expect_true(all(setdiff(names(store@schema), "embedding") %in%         names(ret)))    ret <- ragnar_retrieve_vss_and_bm25(store, "foo")    expect_equal(nrow(ret), 3)    ret <- ragnar_retrieve(store, "foo")    expect_equal(nrow(ret), 3)})
  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("ragnar")
  An irrecoverable exception occurred. R is aborting now ...