- using R Under development (unstable) (2025-11-25 r89063)
- using platform: x86_64-pc-linux-gnu
- R was compiled by
clang version 21.1.6
flang version 21.1.6
- running under: Fedora Linux 42 (Workstation Edition)
- using session charset: UTF-8
- using option ‘--no-stop-on-test-error’
- checking for file ‘specleanr/DESCRIPTION’ ... OK
- checking extension type ... Package
- this is package ‘specleanr’ version ‘1.0.0’
- package encoding: UTF-8
- checking package namespace information ... OK
- checking package dependencies ... OK
- checking if this is a source package ... OK
- checking if there is a namespace ... OK
- checking for executable files ... OK
- checking for hidden files and directories ... OK
- checking for portable file names ... OK
- checking for sufficient/correct file permissions ... OK
- checking whether package ‘specleanr’ can be installed ... [69s/88s] OK
See the install log for details.
- checking installed package size ... OK
- checking package directory ... OK
- checking ‘build’ directory ... OK
- checking DESCRIPTION meta-information ... OK
- checking top-level files ... OK
- checking for left-over files ... OK
- checking index information ... OK
- checking package subdirectories ... OK
- checking code files for non-ASCII characters ... OK
- checking R files for syntax errors ... OK
- checking whether the package can be loaded ... [19s/20s] OK
- checking whether the package can be loaded with stated dependencies ... [19s/20s] OK
- checking whether the package can be unloaded cleanly ... [17s/19s] OK
- checking whether the namespace can be loaded with stated dependencies ... [17s/18s] OK
- checking whether the namespace can be unloaded cleanly ... [20s/20s] OK
- checking loading without being on the library search path ... [18s/19s] OK
- checking use of S3 registration ... OK
- checking dependencies in R code ... OK
- checking S3 generic/method consistency ... OK
- checking replacement functions ... OK
- checking foreign function calls ... OK
- checking R code for possible problems ... [102s/104s] OK
- checking Rd files ... OK
- checking Rd metadata ... OK
- checking Rd line widths ... OK
- checking Rd cross-references ... OK
- checking for missing documentation entries ... OK
- checking for code/documentation mismatches ... OK
- checking Rd \usage sections ... OK
- checking Rd contents ... OK
- checking for unstated dependencies in examples ... OK
- checking contents of ‘data’ directory ... OK
- checking data for non-ASCII characters ... OK
- checking LazyData ... OK
- checking data for ASCII and uncompressed saves ... OK
- checking installed files from ‘inst/doc’ ... OK
- checking files in ‘vignettes’ ... OK
- checking examples ... [20s/20s] OK
- checking for unstated dependencies in ‘tests’ ... OK
- checking tests ... [136s/122s] ERROR
Running ‘testthat.R’ [136s/121s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
>
> library(testthat)
> library(specleanr)
>
> test_check("specleanr")
OMP: Warning #96: Cannot form a team with 24 threads, using 2 instead.
OMP: Hint Consider unsetting KMP_DEVICE_THREAD_LIMIT (KMP_ALL_THREADS), KMP_TEAMS_THREAD_LIMIT, and OMP_THREAD_LIMIT (if any are set).
Saving _problems/test-methods-12.R
Non numeric columns Species were removed from data.
mixediqr was implemented successfully for species .
logboxplot was implemented successfully for species .
iqr was implemented successfully for species .
[ FAIL 1 | WARN 0 | SKIP 8 | PASS 157 ]
══ Skipped tests (8) ═══════════════════════════════════════════════════════════
• On CRAN (8): 'test-checknames.R:10:13', 'test-checknames.R:19:13',
'test-checknames.R:33:13', 'test-checknames.R:40:13', 'test-getdata.R:5:13',
'test-getdata.R:20:13', 'test-getdata.R:29:13', 'test-multidetect.R:543:13'
══ Failed tests ════════════════════════════════════════════════════════════════
── Error ('test-methods.R:12:1'): (code run outside of `test_that()`) ──────────
Error in `(function (cond) .Internal(C_tryCatchHelper(addr, 1L, cond)))(structure(list(message = "Invalid Error: Invalid Input Error: Initialization function \"spatial_duckdb_cpp_init\" from file \"/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension\" threw an exception: \"Missing DB manager\"\ni Context: rapi_execute\ni Error type: INVALID\ni Raw message: Invalid Input Error: Initialization function \"spatial_duckdb_cpp_init\" from file \"/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension\" threw an exception: \"Missing DB manager\"", trace = structure(list(call = list(check_names(mdf, colsp = "species", verbose = FALSE, merge = TRUE), fishbase(tables = "synonym"), suppressMessages(rfishbase::synonyms()), withCallingHandlers(expr, message = function(c) if (inherits(c, classes)) tryInvokeRestart("muffleMessage")), rfishbase::synonyms(), fb_tbl("synonyms", server, version, db) %>% mutate(synonym = paste(SynGenus, SynSpecies)) %>% select(dplyr::any_of(c("synonym", "Status", "SpecCode", "SynCode", "CoL_ID", "TSN", "WoRMS_ID", "ZooBank_ID", "TaxonLevel"))), select(., dplyr::any_of(c("synonym", "Status", "SpecCode", "SynCode", "CoL_ID", "TSN", "WoRMS_ID", "ZooBank_ID", "TaxonLevel"))), mutate(., synonym = paste(SynGenus, SynSpecies)), fb_tbl("synonyms", server, version, db), duckdbfs::open_dataset(urls[tbl]), parse_uri(sources, conn = conn, recursive = recursive), load_httpfs(conn), load_extension("httpfs", conn = conn, nightly = nightly, force = force), duckdb_extensions(), DBI::dbGetQuery(conn, query), cached_connection(), DBI::dbExecute(conn, "LOAD spatial;"), DBI::dbExecute(conn, "LOAD spatial;"), dbSendStatement(conn, statement, ...), dbSendStatement(conn, statement, ...), dbSendQuery(conn, statement, ...), dbSendQuery(conn, statement, ...), .local(conn, statement, ...), duckdb_result(connection = conn, stmt_lst = stmt_lst, arrow = arrow), duckdb_execute(res), rethrow_rapi_execute(res@stmt_lst$ref, duckdb_convert_opts_impl(res@connection@convert_opts, arrow = res@arrow)), rlang::try_fetch(rapi_execute(stmt, convert_opts), error = function(e) { rethrow_error_from_rapi(e, call) }), 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]]), tryCatchList(expr, classes, parentenv, handlers), tryCatchOne(expr, names, parentenv, handlers[[1L]]), doTryCatch(return(expr), name, parentenv, handler), 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") } }), rapi_execute(stmt, convert_opts), `<fn>`("rapi_execute", "Invalid Error: Invalid Input Error: Initialization function \"spatial_duckdb_cpp_init\" from file \"/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension\" threw an exception: \"Missing DB manager\"", "INVALID", "Invalid Input Error: Initialization function \"spatial_duckdb_cpp_init\" from file \"/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension\" threw an exception: \"Missing DB manager\"", `<list>`), rlang::abort(error_parts, class = "duckdb_error", !!!fields), signal_abort(cnd, .file), signalCondition(cnd), `<fn>`(`<dckdb_rr>`), handlers[[1L]](cnd), rethrow_error_from_rapi(e, call), rlang::abort(msg, call = call)), parent = c(0L, 1L, 2L, 3L, 2L, 5L, 0L, 0L, 5L, 9L, 10L, 11L, 12L, 13L, 14L, 14L, 16L, 16L, 18L, 18L, 20L, 20L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 27L, 26L, 0L, 34L, 35L, 36L, 0L, 38L, 39L, 40L), visible = c(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), namespace = c("specleanr", "specleanr", "base", "base", "rfishbase", NA, "dplyr", "dplyr", "rfishbase", "duckdbfs", "duckdbfs", "duckdbfs", "duckdbfs", "duckdbfs", "DBI", "duckdbfs", "DBI", "DBI", "DBI", "DBI", "DBI", "duckdb", "duckdb", "duckdb", "duckdb", "duckdb", "rlang", "base", "base", "base", "base", "base", "duckdb", "duckdb", "rlang", "rlang", "base", "rlang", NA, "duckdb", "rlang"), scope = c("::", ":::", "::", "::", "::", NA, "::", "::", "::", "::", ":::", ":::", ":::", "::", "::", "::", "::", "::", "::", "::", "::", "::", "local", ":::", ":::", ":::", "::", "::", "local", "local", "local", "::", ":::", "local", "::", ":::", "::", "local", NA, ":::", "::"), error_frame = c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE)), row.names = c(NA, -41L), version = 2L, class = c("rlang_trace", "rlib_trace", "tbl", "data.frame")), parent = NULL, rlang = list(inherit = TRUE), call = duckdb_result(connection = conn, stmt_lst = stmt_lst, arrow = arrow)), class = c("rlang_error", "error", "condition")))`: error in evaluating the argument 'conn' in selecting a method for function 'dbGetQuery': Invalid Error: Invalid Input Error: Initialization function "spatial_duckdb_cpp_init" from file "/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension" threw an exception: "Missing DB manager"
i Context: rapi_execute
i Error type: INVALID
i Raw message: Invalid Input Error: Initialization function "spatial_duckdb_cpp_init" from file "/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension" threw an exception: "Missing DB manager"
Backtrace:
▆
1. ├─specleanr::check_names(...) at test-methods.R:12:1
2. │ └─specleanr:::fishbase(tables = "synonym")
3. │ ├─base::suppressMessages(rfishbase::synonyms())
4. │ │ └─base::withCallingHandlers(...)
5. │ └─rfishbase::synonyms()
6. │ ├─... %>% ...
7. │ └─rfishbase::fb_tbl("synonyms", server, version, db)
8. │ └─duckdbfs::open_dataset(urls[tbl])
9. │ └─duckdbfs:::parse_uri(sources, conn = conn, recursive = recursive)
10. │ └─duckdbfs:::load_httpfs(conn)
11. │ └─duckdbfs:::load_extension(...)
12. │ └─duckdbfs::duckdb_extensions()
13. │ ├─DBI::dbGetQuery(conn, query)
14. │ └─duckdbfs::cached_connection()
15. │ ├─DBI::dbExecute(conn, "LOAD spatial;")
16. │ └─DBI::dbExecute(conn, "LOAD spatial;")
17. │ ├─DBI::dbSendStatement(conn, statement, ...)
18. │ └─DBI::dbSendStatement(conn, statement, ...)
19. │ ├─DBI::dbSendQuery(conn, statement, ...)
20. │ └─duckdb::dbSendQuery(conn, statement, ...)
21. │ └─duckdb (local) .local(conn, statement, ...)
22. │ └─duckdb:::duckdb_result(...)
23. │ └─duckdb:::duckdb_execute(res)
24. │ └─duckdb:::rethrow_rapi_execute(...)
25. │ ├─rlang::try_fetch(...)
26. │ │ ├─base::tryCatch(...)
27. │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
28. │ │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
29. │ │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler)
30. │ │ └─base::withCallingHandlers(...)
31. │ └─duckdb:::rapi_execute(stmt, convert_opts)
32. ├─dplyr::select(...)
33. ├─dplyr::mutate(., synonym = paste(SynGenus, SynSpecies))
34. ├─duckdb (local) `<fn>`(...)
35. │ └─rlang::abort(error_parts, class = "duckdb_error", !!!fields)
36. │ └─rlang:::signal_abort(cnd, .file)
37. │ └─base::signalCondition(cnd)
38. ├─rlang (local) `<fn>`(`<dckdb_rr>`)
39. │ └─handlers[[1L]](cnd)
40. │ └─duckdb:::rethrow_error_from_rapi(e, call)
41. │ └─rlang::abort(msg, call = call)
42. │ └─rlang:::signal_abort(cnd, .file)
43. │ └─base::signalCondition(cnd)
44. └─base (local) `<fn>`(`<rlng_rrr>`)
[ FAIL 1 | WARN 0 | SKIP 8 | PASS 157 ]
Error:
! Test failures.
Execution halted
- checking for unstated dependencies in vignettes ... OK
- checking package vignettes ... OK
- checking re-building of vignette outputs ... [144s/162s] ERROR
Error(s) in re-building vignettes:
--- re-building ‘Plants.Rmd’ using rmarkdown
Quitting from Plants.Rmd:43-52 [get species occurences]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<error/rlang_error>
Error:
! error in evaluating the argument 'conn' in selecting a method for function 'dbGetQuery': Invalid Error: Invalid Input Error: Initialization function "spatial_duckdb_cpp_init" from file "/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension" threw an exception: "Missing DB manager"
ℹ Context: rapi_execute
ℹ Error type: INVALID
ℹ Raw message: Invalid Input Error: Initialization function "spatial_duckdb_cpp_init" from file "/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension" threw an exception: "Missing DB manager"
---
Backtrace:
▆
1. ├─specleanr::getdata(...)
2. │ └─base::sapply(...)
3. │ └─base::lapply(X = X, FUN = FUN, ...)
4. │ └─specleanr (local) FUN(X[[i]], ...)
5. │ └─specleanr::check_names(...)
6. │ └─specleanr:::fishbase(tables = "synonym")
7. │ ├─base::suppressMessages(rfishbase::synonyms())
8. │ │ └─base::withCallingHandlers(...)
9. │ └─rfishbase::synonyms()
10. │ ├─... %>% ...
11. │ └─rfishbase::fb_tbl("synonyms", server, version, db)
12. │ └─duckdbfs::open_dataset(urls[tbl])
13. │ └─duckdbfs:::parse_uri(sources, conn = conn, recursive = recursive)
14. │ └─duckdbfs:::load_httpfs(conn)
15. │ └─duckdbfs:::load_extension(...)
16. │ └─duckdbfs::duckdb_extensions()
17. │ ├─DBI::dbGetQuery(conn, query)
18. │ └─duckdbfs::cached_connection()
19. │ ├─DBI::dbExecute(conn, "LOAD spatial;")
20. │ └─DBI::dbExecute(conn, "LOAD spatial;")
21. │ ├─DBI::dbSendStatement(conn, statement, ...)
22. │ └─DBI::dbSendStatement(conn, statement, ...)
23. │ ├─DBI::dbSendQuery(conn, statement, ...)
24. │ └─duckdb::dbSendQuery(conn, statement, ...)
25. │ └─duckdb (local) .local(conn, statement, ...)
26. │ └─duckdb:::duckdb_result(...)
27. │ └─duckdb:::duckdb_execute(res)
28. │ └─duckdb:::rethrow_rapi_execute(...)
29. │ ├─rlang::try_fetch(...)
30. │ │ ├─base::tryCatch(...)
31. │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
32. │ │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
33. │ │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler)
34. │ │ └─base::withCallingHandlers(...)
35. │ └─duckdb:::rapi_execute(stmt, convert_opts)
36. ├─dplyr::select(...)
37. ├─dplyr::mutate(., synonym = paste(SynGenus, SynSpecies))
38. ├─duckdb (local) `<fn>`(...)
39. │ └─rlang::abort(error_parts, class = "duckdb_error", !!!fields)
40. │ └─rlang:::signal_abort(cnd, .file)
41. │ └─base::signalCondition(cnd)
42. ├─rlang (local) `<fn>`(`<dckdb_rr>`)
43. │ └─handlers[[1L]](cnd)
44. │ └─duckdb:::rethrow_error_from_rapi(e, call)
45. │ └─rlang::abort(msg, call = call)
46. │ └─rlang:::signal_abort(cnd, .file)
47. │ └─base::signalCondition(cnd)
48. └─base (local) `<fn>`(`<rlng_rrr>`)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: processing vignette 'Plants.Rmd' failed with diagnostics:
error in evaluating the argument 'conn' in selecting a method for function 'dbGetQuery': Invalid Error: Invalid Input Error: Initialization function "spatial_duckdb_cpp_init" from file "/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension" threw an exception: "Missing DB manager"
ℹ Context: rapi_execute
ℹ Error type: INVALID
ℹ Raw message: Invalid Input Error: Initialization function "spatial_duckdb_cpp_init" from file "/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension" threw an exception: "Missing DB manager"
--- failed re-building ‘Plants.Rmd’
--- re-building ‘addspeciesecologicalranges.Rmd’ using rmarkdown
[WARNING] Deprecated: --highlight-style. Use --syntax-highlighting instead.
--- finished re-building ‘addspeciesecologicalranges.Rmd’
--- re-building ‘eOutlier.Rmd’ using rmarkdown
Quitting from eOutlier.Rmd:40-66 [datasoruces]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<error/rlang_error>
Error:
! error in evaluating the argument 'conn' in selecting a method for function 'dbGetQuery': Invalid Error: Invalid Input Error: Initialization function "spatial_duckdb_cpp_init" from file "/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension" threw an exception: "Missing DB manager"
ℹ Context: rapi_execute
ℹ Error type: INVALID
ℹ Raw message: Invalid Input Error: Initialization function "spatial_duckdb_cpp_init" from file "/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension" threw an exception: "Missing DB manager"
---
Backtrace:
▆
1. ├─specleanr::getdata(...)
2. │ └─base::sapply(...)
3. │ └─base::lapply(X = X, FUN = FUN, ...)
4. │ └─specleanr (local) FUN(X[[i]], ...)
5. │ └─specleanr::check_names(...)
6. │ └─specleanr:::fishbase(tables = "synonym")
7. │ ├─base::suppressMessages(rfishbase::synonyms())
8. │ │ └─base::withCallingHandlers(...)
9. │ └─rfishbase::synonyms()
10. │ ├─... %>% ...
11. │ └─rfishbase::fb_tbl("synonyms", server, version, db)
12. │ └─duckdbfs::open_dataset(urls[tbl])
13. │ └─duckdbfs:::parse_uri(sources, conn = conn, recursive = recursive)
14. │ └─duckdbfs:::load_httpfs(conn)
15. │ └─duckdbfs:::load_extension(...)
16. │ └─duckdbfs::duckdb_extensions()
17. │ ├─DBI::dbGetQuery(conn, query)
18. │ └─duckdbfs::cached_connection()
19. │ ├─DBI::dbExecute(conn, "LOAD spatial;")
20. │ └─DBI::dbExecute(conn, "LOAD spatial;")
21. │ ├─DBI::dbSendStatement(conn, statement, ...)
22. │ └─DBI::dbSendStatement(conn, statement, ...)
23. │ ├─DBI::dbSendQuery(conn, statement, ...)
24. │ └─duckdb::dbSendQuery(conn, statement, ...)
25. │ └─duckdb (local) .local(conn, statement, ...)
26. │ └─duckdb:::duckdb_result(...)
27. │ └─duckdb:::duckdb_execute(res)
28. │ └─duckdb:::rethrow_rapi_execute(...)
29. │ ├─rlang::try_fetch(...)
30. │ │ ├─base::tryCatch(...)
31. │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
32. │ │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
33. │ │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler)
34. │ │ └─base::withCallingHandlers(...)
35. │ └─duckdb:::rapi_execute(stmt, convert_opts)
36. ├─dplyr::select(...)
37. ├─dplyr::mutate(., synonym = paste(SynGenus, SynSpecies))
38. ├─duckdb (local) `<fn>`(...)
39. │ └─rlang::abort(error_parts, class = "duckdb_error", !!!fields)
40. │ └─rlang:::signal_abort(cnd, .file)
41. │ └─base::signalCondition(cnd)
42. ├─rlang (local) `<fn>`(`<dckdb_rr>`)
43. │ └─handlers[[1L]](cnd)
44. │ └─duckdb:::rethrow_error_from_rapi(e, call)
45. │ └─rlang::abort(msg, call = call)
46. │ └─rlang:::signal_abort(cnd, .file)
47. │ └─base::signalCondition(cnd)
48. └─base (local) `<fn>`(`<rlng_rrr>`)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: processing vignette 'eOutlier.Rmd' failed with diagnostics:
error in evaluating the argument 'conn' in selecting a method for function 'dbGetQuery': Invalid Error: Invalid Input Error: Initialization function "spatial_duckdb_cpp_init" from file "/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension" threw an exception: "Missing DB manager"
ℹ Context: rapi_execute
ℹ Error type: INVALID
ℹ Raw message: Invalid Input Error: Initialization function "spatial_duckdb_cpp_init" from file "/data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension" threw an exception: "Missing DB manager"
--- failed re-building ‘eOutlier.Rmd’
--- re-building ‘generaloutlier.Rmd’ using rmarkdown
[WARNING] Deprecated: --highlight-style. Use --syntax-highlighting instead.
--- finished re-building ‘generaloutlier.Rmd’
--- re-building ‘loessmethodoptimisation.Rmd’ using rmarkdown
[gannet:2370219:0:2370219] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x2)
==== backtrace (tid:2370219) ====
0 /lib64/libucs.so.0(ucs_handle_error+0x2e4) [0x7f6a087b2df4]
1 /lib64/libucs.so.0(+0x17aed) [0x7f6a087b4aed]
2 /lib64/libucs.so.0(+0x17cbd) [0x7f6a087b4cbd]
3 /lib64/libc.so.6(+0x19c30) [0x7f6a1fd29c30]
4 /data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension(+0x10e6460) [0x7f68e84e6460]
5 /data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension(+0x10c5108) [0x7f68e84c5108]
6 /data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension(+0x7d5b74) [0x7f68e7bd5b74]
7 /data/gannet/ripley/.local/share/R/duckdb/extensions/v1.4.2/linux_amd64/spatial.duckdb_extension(+0x7d4119) [0x7f68e7bd4119]
8 /data/gannet/ripley/R/test-clang/duckdb/libs/duckdb.so(_ZN6duckdb15ExtensionHelper29LoadExternalExtensionInternalERNS_16DatabaseInstanceERNS_10FileSystemERKNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEERNS_19ExtensionActiveLoadE+0x1b4) [0x7f693f9715f4]
9 /data/gannet/ripley/R/test-clang/duckdb/libs/duckdb.so(_ZN6duckdb15ExtensionHelper21LoadExternalExtensionERNS_16DatabaseInstanceERNS_10FileSystemERKNSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEE+0x4a) [0x7f693f97137a]
10 /data/gannet/ripley/R/test-clang/duckdb/libs/duckdb.so(_ZNK6duckdb12PhysicalLoad7GetDataERNS_16ExecutionContextERNS_9DataChunkERNS_19OperatorSourceInputE+0x151) [0x7f69407ab6b1]
11 /data/gannet/ripley/R/test-clang/duckdb/libs/duckdb.so(_ZN6duckdb16PipelineExecutor15FetchFromSourceERNS_9DataChunkE+0x9f) [0x7f6940f5d5df]
12 /data/gannet/ripley/R/test-clang/duckdb/libs/duckdb.so(_ZN6duckdb16PipelineExecutor7ExecuteEm+0x133) [0x7f6940f5a073]
13 /data/gannet/ripley/R/test-clang/duckdb/libs/duckdb.so(_ZN6duckdb12PipelineTask11ExecuteTaskENS_17TaskExecutionModeE+0x119) [0x7f6940f59ca9]
14 /data/gannet/ripley/R/test-clang/duckdb/libs/duckdb.so(_ZN6duckdb12ExecutorTask7ExecuteENS_17TaskExecutionModeE+0xa0) [0x7f6940f535c0]
15 /data/gannet/ripley/R/test-clang/duckdb/libs/duckdb.so(_ZN6duckdb8Executor11ExecuteTaskEb+0x24a) [0x7f6940f58b8a]
16 /data/gannet/ripley/R/test-clang/duckdb/libs/duckdb.so(_ZN6duckdb13ClientContext19ExecuteTaskInternalERNS_17ClientContextLockERNS_15BaseQueryResultEb+0x40) [0x7f6940d98280]
17 /data/gannet/ripley/R/test-clang/duckdb/libs/duckdb.so(_ZN6duckdb18PendingQueryResult15ExecuteInternalERNS_17ClientContextLockE+0x7a) [0x7f6940d9a7ba]
18 /data/gannet/ripley/R/test-clang/duckdb/libs/duckdb.so(_ZN6duckdb17PreparedStatement7ExecuteERNS_6vectorINS_5ValueELb1EEEb+0x5a) [0x7f6940dbad1a]
19 /data/gannet/ripley/R/test-clang/duckdb/libs/duckdb.so(_Z12rapi_executeN5cpp1116external_pointerIN6duckdb10RStatementEXadL_ZNS_15default_deleterIS2_EEvPT_EEEENS1_11ConvertOptsE+0x115) [0x7f693f701b95]
20 /data/gannet/ripley/R/test-clang/duckdb/libs/duckdb.so(_duckdb_rapi_execute+0x63) [0x7f693f76a8f3]
21 /data/gannet/ripley/R/R-clang/bin/exec/R(+0x8e564) [0x5583ba637564]
22 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xdd470) [0x5583ba686470]
23 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc62ac) [0x5583ba66f2ac]
24 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x1a5) [0x5583ba66ea35]
25 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc6534) [0x5583ba66f534]
26 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x26e) [0x5583ba66eafe]
27 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc6534) [0x5583ba66f534]
28 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xdf5b0) [0x5583ba6885b0]
29 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xcaf92) [0x5583ba673f92]
30 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc62ac) [0x5583ba66f2ac]
31 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x1a5) [0x5583ba66ea35]
32 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe2e29) [0x5583ba68be29]
33 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe232c) [0x5583ba68b32c]
34 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x5f6) [0x5583ba66ee86]
35 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc6534) [0x5583ba66f534]
36 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xdf5b0) [0x5583ba6885b0]
37 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xcaf92) [0x5583ba673f92]
38 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc62ac) [0x5583ba66f2ac]
39 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x1a5) [0x5583ba66ea35]
40 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe2e29) [0x5583ba68be29]
41 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe232c) [0x5583ba68b32c]
42 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x5f6) [0x5583ba66ee86]
43 /data/gannet/ripley/R/test-clang/rlang/libs/rlang.so(+0x4603) [0x7f6a16130603]
44 /data/gannet/ripley/R/R-clang/bin/exec/R(+0x8c6b3) [0x5583ba6356b3]
45 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xcdeab) [0x5583ba676eab]
46 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc62ac) [0x5583ba66f2ac]
47 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x1a5) [0x5583ba66ea35]
48 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe2e29) [0x5583ba68be29]
49 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe232c) [0x5583ba68b32c]
50 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x5f6) [0x5583ba66ee86]
51 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe83d8) [0x5583ba6913d8]
52 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x3d0) [0x5583ba66ec60]
53 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe74eb) [0x5583ba6904eb]
54 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x3d0) [0x5583ba66ec60]
55 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe2e29) [0x5583ba68be29]
56 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe232c) [0x5583ba68b32c]
57 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xcd6b3) [0x5583ba6766b3]
58 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xc62ac) [0x5583ba66f2ac]
59 /data/gannet/ripley/R/R-clang/bin/exec/R(Rf_eval+0x1a5) [0x5583ba66ea35]
60 /data/gannet/ripley/R/R-clang/bin/exec/R(+0xe2e29) [0x5583ba68be29]
61 /data/gannet/ripley/R/R-clang/bin/exec/R(R_execMethod+0x2cb) [0x5583ba68ec5b]
=================================
*** caught segfault ***
address 0x4d200242aab, cause 'unknown'
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, "LOAD spatial;")
17: DBI::dbExecute(conn, "LOAD spatial;")
18: cached_connection()
19: DBI::dbGetQuery(conn, query)
20: duckdb_extensions()
21: load_extension("httpfs", conn = conn, nightly = nightly, force = force)
22: load_httpfs(conn)
23: parse_uri(sources, conn = conn, recursive = recursive)
24: duckdbfs::open_dataset(urls[tbl])
25: fb_tbl("synonyms", server, version, db)
26: mutate(., synonym = paste(SynGenus, SynSpecies))
27: select(., dplyr::any_of(c("synonym", "Status", "SpecCode", "SynCode", "CoL_ID", "TSN", "WoRMS_ID", "ZooBank_ID", "TaxonLevel")))
28: fb_tbl("synonyms", server, version, db) %>% mutate(synonym = paste(SynGenus, SynSpecies)) %>% select(dplyr::any_of(c("synonym", "Status", "SpecCode", "SynCode", "CoL_ID", "TSN", "WoRMS_ID", "ZooBank_ID", "TaxonLevel")))
29: rfishbase::synonyms()
30: withCallingHandlers(expr, message = function(c) if (inherits(c, classes)) tryInvokeRestart("muffleMessage"))
31: suppressMessages(rfishbase::synonyms())
32: fishbase(tables = "synonym")
33: check_names(data = spp, verbose = verbose, pct = pct, sn = sn)
34: FUN(X[[i]], ...)
35: lapply(X = X, FUN = FUN, ...)
36: sapply(data, function(spp) { checkFB <- check_names(data = spp, verbose = verbose, pct = pct, sn = sn) if (is.na(checkFB)) { checksppx <- spp } else { checksppx <- checkFB } sapply(db, FUN = function(xdb) { if (xdb == "gbif") { ndata <- tryCatch(expr = rgbif::occ_count(scientificName = checksppx), error = function(e) { if (grepl(" HTTP2 framing layer", e$message) == TRUE) { if (isTRUE(warn)) warning("GBIF webpage is misbehvaing and return HTTP2 frame layer message", call. = FALSE) return(NULL) } }) if (!is.null(ndata)) { if (ndata == 0) { if (isTRUE(verbose)) message("No records found for ", checksppx, " in GBIF") gbifx <- NULL } else if (ndata <= 50000 & is.null(extent)) { if (gbiflim <= 50000) { gbifsp <- rgbif::occ_data(scientificName = checksppx, limit = gbiflim) if (isTRUE(verbose)) message(nrow(gbifsp$data), " records for ", checksppx, " in GBIF were downloaded based on the gbiflimit of ", gbiflim) gbifx <- gbifsp$data } else { gbifsp <- rgbif::occ_data(scientificName = checksppx, limit = ndata) if (isTRUE(verbose)) message(nrow(gbifsp$data), " records for ", checksppx, " in GBIF were download as they were the maximum records found.") gbifx <- gbifsp$data } } else if (!is.null(extent)) { extval <- extentvalues(extent, xdb) if (gbiflim <= 50000) { gbifsp <- rgbif::occ_data(scientificName = checksppx, limit = gbiflim, decimalLongitude = paste0(extval[1], ",", extval[3]), decimalLatitude = paste0(extval[2], ",", extval[4]), ...) if (isTRUE(verbose)) message(nrow(gbifsp$data), " records for ", checksppx, " in GBIF were downloaded based on the gbif limit of ", gbiflim) } else { gbifsp <- rgbif::occ_data(scientificName = checksppx, limit = gbiflim, decimalLongitude = paste0(extval[1], ",", extval[3]), decimalLatitude = paste0(extval[2], ",", extval[4]), ...) if (isTRUE(verbose)) message("All ", nrow(gbifsp$data), " records for ", checksppx, " in GBIF were downloaded") } gbifx <- gbifsp$data } else if (ndata > 50000 && is.null(extent)) { if (isTRUE(verbose)) message("Only ", gbiflim, " records will be downloaded.") gbifsp <- rgbif::occ_data(scientificName = checksppx, limit = gbiflim, ...) gbifx <- gbifsp$data } else { gbifx = NULL } if (is(gbifx, "data.frame")) { if ("decimalLatitude" %in% colnames(gbifx) == TRUE) { gbifx } else { if (isTRUE(warn)) warning("The data for ", checksppx, " will be removed since no cordinates were found in GBIF database.", call. = FALSE) gbifx <- NULL } } else { gbifx = NULL } } else { gbifx <- NULL } } else if (xdb == "vertnet") { sptx <- scan(text = checksppx, what = " ", quiet = TRUE) if (!is.null(extent)) vbbox <- extentvalues(extent, xdb) else vbbox <- NULL vertx <- tryCatch(rvertnet::searchbyterm(genus = tolower(sptx[1]), specificepithet = tolower(sptx[2]), limit = vertlim, messages = FALSE, bbox = vbbox), error = function(e) { if (grepl("Internal Server Error \\(HTTP 500\\)", e$message) == TRUE | grepl("Service Unavailable \\(HTTP 503\\)", e$message) == TRUE) { if (isTRUE(warn)) warning("The VertNet database has returned 500 or 503 error message and will be skipped for ", checksppx, ".", call. = FALSE) return(NULL) } else { return(NULL) } }) if (is.null(vertx)) { if (isTRUE(verbose)) message("No records for ", checksppx, " in vertnet were found") vertxdf <- NULL } else { vertxdf <- vertx$data if (isTRUE(verbose)) message(nrow(vertxdf), " records for ", checksppx, " in vertnet downloaded.") vertxdf } } else if (xdb == "inat") { if (!is.null(extent)) vbbox <- extentvalues(extent, xdb) else vbbox <- NULL inatx <- tryCatch(expr = { sx <- rinat::get_inat_obs(taxon_name = checksppx, maxresults = inatlim, bounds = vbbox) }, error = function(e) { if (isTRUE(verbose)) message("No data exist for species ", checksppx, " in inaturalist were found.") return(0) }) if (length(inatx) > 1) { inatx <- sx if (isTRUE(verbose)) message(nrow(inatx), " records for ", checksppx, " in inaturalist downloaded.") inatx } else { inatx <- NULL } } else { stop("Database name not acceptable. Use only gbif, vertnet, or inat") } }, simplify = FALSE)}, simplify = FALSE)
37: getdata(data = c("Squalius cephalus", "Salmo trutta", "Thymallus thymallus"), extent = danube, gbiflim = 50, inatlim = 50, vertlim = 50, verbose = FALSE)
38: eval(expr, envir)
39: eval(expr, envir)
40: withVisible(eval(expr, envir))
41: withCallingHandlers(code, message = function (cnd) { watcher$capture_plot_and_output() if (on_message$capture) { watcher$push(cnd) } if (on_message$silence) { invokeRestart("muffleMessage") }}, warning = function (cnd) { if (getOption("warn") >= 2 || getOption("warn") < 0) { return() } watcher$capture_plot_and_output() if (on_warning$capture) { cnd <- sanitize_call(cnd) watcher$push(cnd) } if (on_warning$silence) { invokeRestart("muffleWarning") }}, error = function (cnd) { watcher$capture_plot_and_output() cnd <- sanitize_call(cnd) watcher$push(cnd) switch(on_error, continue = invokeRestart("eval_continue"), stop = invokeRestart("eval_stop"), error = NULL)})
42: eval(call)
43: eval(call)
44: with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers)
45: doWithOneRestart(return(expr), restart)
46: withOneRestart(expr, restarts[[1L]])
47: withRestartList(expr, restarts[-nr])
48: doWithOneRestart(return(expr), restart)
49: withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]])
50: withRestartList(expr, restarts)
51: withRestarts(with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers), eval_continue = function() TRUE, eval_stop = function() FALSE)
52: evaluate::evaluate(...)
53: 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))
54: in_dir(input_dir(), expr)
55: 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)))
56: eng_r(options)
57: block_exec(params)
58: call_block(x)
59: process_group(group)
60: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (xfun::pkg_available("rlang", "1.0.0")) { if (is_R_CMD_build() || is_R_CMD_check()) { cnd = tryCatch(rlang::entrace(e), error = identity) error <<- format(cnd) } else { rlang::entrace(e) } } })
61: xfun:::handle_error(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (xfun::pkg_available("rlang", "1.0.0")) { if (is_R_CMD_build() || is_R_CMD_check()) { cnd = tryCatch(rlang::entrace(e), error = identity) error <<- format(cnd) } else { rlang::entrace(e) } } }), function(loc) { setwd(wd) write_utf8(res, output %n% stdout()) paste0("\nQuitting from ", loc, if (!is.null(error)) paste0("\n", rule(), error, "\n", rule()))}, if (labels[i] != "") sprintf(" [%s]", labels[i]), get_loc)
62: process_file(text, output)
63: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
64: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(), output_dir = getwd(), ...)
65: vweave_rmarkdown(...)
66: engine$weave(file, quiet = quiet, encoding = enc)
67: doTryCatch(return(expr), name, parentenv, handler)
68: tryCatchOne(expr, names, parentenv, handlers[[1L]])
69: tryCatchList(expr, classes, parentenv, handlers)
70: tryCatch({ engine$weave(file, quiet = quiet, encoding = enc) setwd(startdir) output <- find_vignette_product(name, by = "weave", engine = engine) if (!have.makefile && vignette_is_tex(output)) { texi2pdf(file = output, clean = FALSE, quiet = quiet) output <- find_vignette_product(name, by = "texi2pdf", engine = engine) }}, error = function(e) { OK <<- FALSE message(gettextf("Error: processing vignette '%s' failed with diagnostics:\n%s", file, conditionMessage(e)))})
71: tools:::.buildOneVignette("loessmethodoptimisation.Rmd", "/data/gannet/ripley/R/packages/tests-clang/specleanr.Rcheck/vign_test/specleanr", TRUE, FALSE, "loessmethodoptimisation", "UTF-8", "/tmp/RtmpXkO4ee/working_dir/RtmpSuPjXp/file23f86c58e4d1f.rds")
An irrecoverable exception occurred. R is aborting now ...
SUMMARY: processing the following files failed:
‘Plants.Rmd’ ‘eOutlier.Rmd’ ‘loessmethodoptimisation.Rmd’
Error: Vignette re-building failed.
Execution halted
- checking PDF version of manual ... [11s/11s] OK
- checking HTML version of manual ... [10s/10s] OK
- checking for non-standard things in the check directory ... OK
- checking for detritus in the temp directory ... OK
- DONE
Status: 2 ERRORs