segfault on CRAN 2024-05-28
Closed this issue · 6 comments
mdsumner commented
Please correct before 2024-06-14 to safely retain your package on CRAN.
The CRAN Team
CRAN Package Check Results for Package vapour
Last updated on 2024-05-28 23:50:30 CEST.
Flavor Version Tinstall Tcheck Ttotal Status Flags
r-devel-linux-x86_64-debian-clang 0.9.5 135.64 60.77 196.41 ERROR
r-devel-linux-x86_64-debian-gcc 0.9.5 92.42 44.80 137.22 ERROR
r-devel-linux-x86_64-fedora-clang 0.9.5 285.91 ERROR
r-devel-linux-x86_64-fedora-gcc 0.9.5 312.34 ERROR
r-devel-windows-x86_64 0.9.5 96.00 5.00 101.00 ERROR
r-patched-linux-x86_64 0.9.5 115.13 66.12 181.25 OK
r-release-linux-x86_64 0.9.5 122.13 68.26 190.39 OK
r-release-macos-arm64 0.9.5 94.00 NOTE
r-release-windows-x86_64 0.9.5 97.00 5.00 102.00 ERROR
r-oldrel-macos-arm64 0.9.5 123.00 NOTE
r-oldrel-macos-x86_64 0.9.5 158.00 NOTE
r-oldrel-windows-x86_64 0.9.5 153.00 744.00 897.00 NOTE
Additional issues
clang-UBSAN
Check Details
Version: 0.9.5
Check: examples
Result: ERROR
Running examples in ‘vapour-Ex.R’ failed
The error most likely occurred in:
> base::assign(".ptime", proc.time(), pos = "CheckExEnv")
> ### Name: gdal_raster_data
> ### Title: General raster read and convert
> ### Aliases: gdal_raster_data gdal_raster_dsn gdal_raster_image
>
> ### ** Examples
>
> dsn <- system.file("extdata/sst.tif", package = "vapour")
> par(mfrow = c(2, 2))
> ## do nothing, get native
> X <- gdal_raster_data(dsn)
*** caught segfault ***
address 0x1, cause 'memory not mapped'
Traceback:
1: warp_general_cpp(dsn, target_crs, as.numeric(target_ext), as.integer(target_dim), as.numeric(target_res), bands = as.integer(bands), resample = resample, silent = FALSE, band_output_type = band_output_type, options = options, dsn_outname = "")
2: gdal_raster_data(dsn)
An irrecoverable exception occurred. R is aborting now ...
Segmentation fault
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc
Version: 0.9.5
Check: tests
Result: ERROR
Running ‘spelling.R’ [0s/1s]
Running ‘testthat.R’ [2s/2s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
> library(testthat)
> library(vapour)
>
> test_check("vapour")
*** caught segfault ***
address 0x1, cause 'memory not mapped'
Traceback:
1: warp_in_memory_gdal_cpp(x, source_WKT = source_projection, target_WKT = projection, target_extent = as.numeric(extent), target_dim = as.integer(dimension), bands = as.integer(bands), source_extent = as.numeric(source_extent), resample = resample, silent = silent, band_output_type = band_output_type, options = options, nomd = nomd, overview)
2: vapour_warp_raster(f, dimension = info$dimension, extent = c(0, 1, 0, 1), transformation_options = c("SRC_METHOD=NO_GEOTRANSFORM"))
3: eval(code, test_env)
4: eval(code, test_env)
5: 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)
6: doTryCatch(return(expr), name, parentenv, handler)
7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
8: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
9: doTryCatch(return(expr), name, parentenv, handler)
10: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
11: tryCatchList(expr, classes, parentenv, handlers)
12: 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) { })
13: test_code(desc, code, env = parent.frame(), default_reporter = local_interactive_reporter())
14: test_that("with with no source crs works", { f <- system.file("extdata/volcano.png", package = "vapour", mustWork = TRUE) info <- vapour_raster_info(f) ok <- vapour_warp_raster(f, dimension = info$dimension, extent = c(0, 1, 0, 1), transformation_options = c("SRC_METHOD=NO_GEOTRANSFORM")) if (dir.exists("/rdsi/PUBLIC/raad/data/www.ncei.noaa.gov")) { sds <- "NETCDF:/rdsi/PUBLIC/raad/data/www.ncei.noaa.gov/data/sea-surface-temperature-optimum-interpolation/v2.1/access/avhrr/198109/oisst-avhrr-v02r01.19810901.nc:sst" expect_silent(vapour_warp_raster(sds, extent = c(0, 1, 0, 1), dimension = c(4, 4))) expect_silent(vapour_warp_raster(sds, extent = c(0, 1, 0, 1), dimension = c(4, 4), source_projection = "+proj=laea")) expect_warning(vapour_warp_raster(sds, extent = c(0, 1, 0, 1), dimension = c(4, 4), projection = "OGC:CRS84")) } badnc <- system.file("extdata/gdal", "bad_netcdf_geoloc_arrays.nc", package = "vapour") sds <- vapour_sds_names(badnc) lcc <- "+proj=lcc +lat_0=-30 +lon_0=134.33 +lat_1=-50 +lat_2=-10 +R=6378137" ex <- c(-3077504, 3968504, -2763621, 3472383) vrt <- vapour_vrt(sds[3], geolocation = sds[2:1], bands = 1) info <- vapour_raster_info(vrt) expect_warning(im <- vapour_warp_raster_dbl(vrt, extent = ex, dimension = info$dimension, projection = lcc, transformation_options = c("SRC_METHOD=NO_GEOTRANSFORM"))) ex <- c(-180, 180, -90, 90) dm <- c(512, 1024) vrt <- vapour_vrt(sds[3], geolocation = sds[2:1], bands = 1) vapour::vapour_set_config("GDAL_NETCDF_BOTTOMUP", "NO") expect_warning(im <- vapour_warp_raster_dbl(vrt, extent = ex, dimension = dm, projection = "OGC:CRS84", transformation_options = c("SRC_METHOD=GEOLOC_ARRAY")))})
15: eval(code, test_env)
16: eval(code, test_env)
17: 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)
18: doTryCatch(return(expr), name, parentenv, handler)
19: tryCatchOne(expr, names, parentenv, handlers[[1L]])
20: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
21: doTryCatch(return(expr), name, parentenv, handler)
22: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
23: tryCatchList(expr, classes, parentenv, handlers)
24: 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) { })
25: test_code(test = NULL, code = exprs, env = env, default_reporter = StopReporter$new())
26: source_file(path, env = env(env), desc = desc, error_call = error_call)
27: FUN(X[[i]], ...)
28: lapply(test_paths, test_one_file, env = env, desc = desc, error_call = error_call)
29: doTryCatch(return(expr), name, parentenv, handler)
30: tryCatchOne(expr, names, parentenv, handlers[[1L]])
31: tryCatchList(expr, classes, parentenv, handlers)
32: tryCatch(code, testthat_abort_reporter = function(cnd) { cat(conditionMessage(cnd), "\n") NULL})
33: with_reporter(reporters$multi, lapply(test_paths, test_one_file, env = env, desc = desc, error_call = error_call))
34: 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)
35: 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)
36: test_dir("testthat", package = package, reporter = reporter, ..., load_package = "installed")
37: test_check("vapour")
An irrecoverable exception occurred. R is aborting now ...
Segmentation fault
Flavor: r-devel-linux-x86_64-debian-clang
Version: 0.9.5
Check: tests
Result: ERROR
Running ‘spelling.R’ [0s/0s]
Running ‘testthat.R’ [1s/2s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
> library(testthat)
> library(vapour)
>
> test_check("vapour")
*** caught segfault ***
address 0x1, cause 'memory not mapped'
Traceback:
1: warp_in_memory_gdal_cpp(x, source_WKT = source_projection, target_WKT = projection, target_extent = as.numeric(extent), target_dim = as.integer(dimension), bands = as.integer(bands), source_extent = as.numeric(source_extent), resample = resample, silent = silent, band_output_type = band_output_type, options = options, nomd = nomd, overview)
2: vapour_warp_raster(f, dimension = info$dimension, extent = c(0, 1, 0, 1), transformation_options = c("SRC_METHOD=NO_GEOTRANSFORM"))
3: eval(code, test_env)
4: eval(code, test_env)
5: 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)
6: doTryCatch(return(expr), name, parentenv, handler)
7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
8: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
9: doTryCatch(return(expr), name, parentenv, handler)
10: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
11: tryCatchList(expr, classes, parentenv, handlers)
12: 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) { })
13: test_code(desc, code, env = parent.frame(), default_reporter = local_interactive_reporter())
14: test_that("with with no source crs works", { f <- system.file("extdata/volcano.png", package = "vapour", mustWork = TRUE) info <- vapour_raster_info(f) ok <- vapour_warp_raster(f, dimension = info$dimension, extent = c(0, 1, 0, 1), transformation_options = c("SRC_METHOD=NO_GEOTRANSFORM")) if (dir.exists("/rdsi/PUBLIC/raad/data/www.ncei.noaa.gov")) { sds <- "NETCDF:/rdsi/PUBLIC/raad/data/www.ncei.noaa.gov/data/sea-surface-temperature-optimum-interpolation/v2.1/access/avhrr/198109/oisst-avhrr-v02r01.19810901.nc:sst" expect_silent(vapour_warp_raster(sds, extent = c(0, 1, 0, 1), dimension = c(4, 4))) expect_silent(vapour_warp_raster(sds, extent = c(0, 1, 0, 1), dimension = c(4, 4), source_projection = "+proj=laea")) expect_warning(vapour_warp_raster(sds, extent = c(0, 1, 0, 1), dimension = c(4, 4), projection = "OGC:CRS84")) } badnc <- system.file("extdata/gdal", "bad_netcdf_geoloc_arrays.nc", package = "vapour") sds <- vapour_sds_names(badnc) lcc <- "+proj=lcc +lat_0=-30 +lon_0=134.33 +lat_1=-50 +lat_2=-10 +R=6378137" ex <- c(-3077504, 3968504, -2763621, 3472383) vrt <- vapour_vrt(sds[3], geolocation = sds[2:1], bands = 1) info <- vapour_raster_info(vrt) expect_warning(im <- vapour_warp_raster_dbl(vrt, extent = ex, dimension = info$dimension, projection = lcc, transformation_options = c("SRC_METHOD=NO_GEOTRANSFORM"))) ex <- c(-180, 180, -90, 90) dm <- c(512, 1024) vrt <- vapour_vrt(sds[3], geolocation = sds[2:1], bands = 1) vapour::vapour_set_config("GDAL_NETCDF_BOTTOMUP", "NO") expect_warning(im <- vapour_warp_raster_dbl(vrt, extent = ex, dimension = dm, projection = "OGC:CRS84", transformation_options = c("SRC_METHOD=GEOLOC_ARRAY")))})
15: eval(code, test_env)
16: eval(code, test_env)
17: 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)
18: doTryCatch(return(expr), name, parentenv, handler)
19: tryCatchOne(expr, names, parentenv, handlers[[1L]])
20: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
21: doTryCatch(return(expr), name, parentenv, handler)
22: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
23: tryCatchList(expr, classes, parentenv, handlers)
24: 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) { })
25: test_code(test = NULL, code = exprs, env = env, default_reporter = StopReporter$new())
26: source_file(path, env = env(env), desc = desc, error_call = error_call)
27: FUN(X[[i]], ...)
28: lapply(test_paths, test_one_file, env = env, desc = desc, error_call = error_call)
29: doTryCatch(return(expr), name, parentenv, handler)
30: tryCatchOne(expr, names, parentenv, handlers[[1L]])
31: tryCatchList(expr, classes, parentenv, handlers)
32: tryCatch(code, testthat_abort_reporter = function(cnd) { cat(conditionMessage(cnd), "\n") NULL})
33: with_reporter(reporters$multi, lapply(test_paths, test_one_file, env = env, desc = desc, error_call = error_call))
34: 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)
35: 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)
36: test_dir("testthat", package = package, reporter = reporter, ..., load_package = "installed")
37: test_check("vapour")
An irrecoverable exception occurred. R is aborting now ...
Segmentation fault
Flavor: r-devel-linux-x86_64-debian-gcc
Version: 0.9.5
Check: examples
Result: ERROR
Running examples in ‘vapour-Ex.R’ failed
The error most likely occurred in:
> ### Name: gdal_raster_data
> ### Title: General raster read and convert
> ### Aliases: gdal_raster_data gdal_raster_dsn gdal_raster_image
>
> ### ** Examples
>
> dsn <- system.file("extdata/sst.tif", package = "vapour")
> par(mfrow = c(2, 2))
> ## do nothing, get native
> X <- gdal_raster_data(dsn)
*** caught segfault ***
address 0x1, cause 'memory not mapped'
Traceback:
1: warp_general_cpp(dsn, target_crs, as.numeric(target_ext), as.integer(target_dim), as.numeric(target_res), bands = as.integer(bands), resample = resample, silent = FALSE, band_output_type = band_output_type, options = options, dsn_outname = "")
2: gdal_raster_data(dsn)
An irrecoverable exception occurred. R is aborting now ...
Flavors: r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc
Version: 0.9.5
Check: tests
Result: ERROR
Running ‘spelling.R’
Running ‘testthat.R’
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
> library(testthat)
> library(vapour)
>
> test_check("vapour")
*** caught segfault ***
address 0x1, cause 'memory not mapped'
Traceback:
1: warp_in_memory_gdal_cpp(x, source_WKT = source_projection, target_WKT = projection, target_extent = as.numeric(extent), target_dim = as.integer(dimension), bands = as.integer(bands), source_extent = as.numeric(source_extent), resample = resample, silent = silent, band_output_type = band_output_type, options = options, nomd = nomd, overview)
2: vapour_warp_raster(f, dimension = info$dimension, extent = c(0, 1, 0, 1), transformation_options = c("SRC_METHOD=NO_GEOTRANSFORM"))
3: eval(code, test_env)
4: eval(code, test_env)
5: 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)
6: doTryCatch(return(expr), name, parentenv, handler)
7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
8: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
9: doTryCatch(return(expr), name, parentenv, handler)
10: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
11: tryCatchList(expr, classes, parentenv, handlers)
12: 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) { })
13: test_code(desc, code, env = parent.frame(), default_reporter = local_interactive_reporter())
14: test_that("with with no source crs works", { f <- system.file("extdata/volcano.png", package = "vapour", mustWork = TRUE) info <- vapour_raster_info(f) ok <- vapour_warp_raster(f, dimension = info$dimension, extent = c(0, 1, 0, 1), transformation_options = c("SRC_METHOD=NO_GEOTRANSFORM")) if (dir.exists("/rdsi/PUBLIC/raad/data/www.ncei.noaa.gov")) { sds <- "NETCDF:/rdsi/PUBLIC/raad/data/www.ncei.noaa.gov/data/sea-surface-temperature-optimum-interpolation/v2.1/access/avhrr/198109/oisst-avhrr-v02r01.19810901.nc:sst" expect_silent(vapour_warp_raster(sds, extent = c(0, 1, 0, 1), dimension = c(4, 4))) expect_silent(vapour_warp_raster(sds, extent = c(0, 1, 0, 1), dimension = c(4, 4), source_projection = "+proj=laea")) expect_warning(vapour_warp_raster(sds, extent = c(0, 1, 0, 1), dimension = c(4, 4), projection = "OGC:CRS84")) } badnc <- system.file("extdata/gdal", "bad_netcdf_geoloc_arrays.nc", package = "vapour") sds <- vapour_sds_names(badnc) lcc <- "+proj=lcc +lat_0=-30 +lon_0=134.33 +lat_1=-50 +lat_2=-10 +R=6378137" ex <- c(-3077504, 3968504, -2763621, 3472383) vrt <- vapour_vrt(sds[3], geolocation = sds[2:1], bands = 1) info <- vapour_raster_info(vrt) expect_warning(im <- vapour_warp_raster_dbl(vrt, extent = ex, dimension = info$dimension, projection = lcc, transformation_options = c("SRC_METHOD=NO_GEOTRANSFORM"))) ex <- c(-180, 180, -90, 90) dm <- c(512, 1024) vrt <- vapour_vrt(sds[3], geolocation = sds[2:1], bands = 1) vapour::vapour_set_config("GDAL_NETCDF_BOTTOMUP", "NO") expect_warning(im <- vapour_warp_raster_dbl(vrt, extent = ex, dimension = dm, projection = "OGC:CRS84", transformation_options = c("SRC_METHOD=GEOLOC_ARRAY")))})
15: eval(code, test_env)
16: eval(code, test_env)
17: 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)
18: doTryCatch(return(expr), name, parentenv, handler)
19: tryCatchOne(expr, names, parentenv, handlers[[1L]])
20: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
21: doTryCatch(return(expr), name, parentenv, handler)
22: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
23: tryCatchList(expr, classes, parentenv, handlers)
24: 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) { })
25: test_code(test = NULL, code = exprs, env = env, default_reporter = StopReporter$new())
26: source_file(path, env = env(env), desc = desc, error_call = error_call)
27: FUN(X[[i]], ...)
28: lapply(test_paths, test_one_file, env = env, desc = desc, error_call = error_call)
29: doTryCatch(return(expr), name, parentenv, handler)
30: tryCatchOne(expr, names, parentenv, handlers[[1L]])
31: tryCatchList(expr, classes, parentenv, handlers)
32: tryCatch(code, testthat_abort_reporter = function(cnd) { cat(conditionMessage(cnd), "\n") NULL})
33: with_reporter(reporters$multi, lapply(test_paths, test_one_file, env = env, desc = desc, error_call = error_call))
34: 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)
35: 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)
36: test_dir("testthat", package = package, reporter = reporter, ..., load_package = "installed")
37: test_check("vapour")
An irrecoverable exception occurred. R is aborting now ...
Flavor: r-devel-linux-x86_64-fedora-clang
Version: 0.9.5
Check: tests
Result: ERROR
Running ‘spelling.R’
Running ‘testthat.R’ [3s/11s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
> library(testthat)
> library(vapour)
>
> test_check("vapour")
*** caught segfault ***
address 0x1, cause 'memory not mapped'
Traceback:
1: warp_in_memory_gdal_cpp(x, source_WKT = source_projection, target_WKT = projection, target_extent = as.numeric(extent), target_dim = as.integer(dimension), bands = as.integer(bands), source_extent = as.numeric(source_extent), resample = resample, silent = silent, band_output_type = band_output_type, options = options, nomd = nomd, overview)
2: vapour_warp_raster(f, dimension = info$dimension, extent = c(0, 1, 0, 1), transformation_options = c("SRC_METHOD=NO_GEOTRANSFORM"))
3: eval(code, test_env)
4: eval(code, test_env)
5: 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)
6: doTryCatch(return(expr), name, parentenv, handler)
7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
8: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
9: doTryCatch(return(expr), name, parentenv, handler)
10: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
11: tryCatchList(expr, classes, parentenv, handlers)
12: 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) { })
13: test_code(desc, code, env = parent.frame(), default_reporter = local_interactive_reporter())
14: test_that("with with no source crs works", { f <- system.file("extdata/volcano.png", package = "vapour", mustWork = TRUE) info <- vapour_raster_info(f) ok <- vapour_warp_raster(f, dimension = info$dimension, extent = c(0, 1, 0, 1), transformation_options = c("SRC_METHOD=NO_GEOTRANSFORM")) if (dir.exists("/rdsi/PUBLIC/raad/data/www.ncei.noaa.gov")) { sds <- "NETCDF:/rdsi/PUBLIC/raad/data/www.ncei.noaa.gov/data/sea-surface-temperature-optimum-interpolation/v2.1/access/avhrr/198109/oisst-avhrr-v02r01.19810901.nc:sst" expect_silent(vapour_warp_raster(sds, extent = c(0, 1, 0, 1), dimension = c(4, 4))) expect_silent(vapour_warp_raster(sds, extent = c(0, 1, 0, 1), dimension = c(4, 4), source_projection = "+proj=laea")) expect_warning(vapour_warp_raster(sds, extent = c(0, 1, 0, 1), dimension = c(4, 4), projection = "OGC:CRS84")) } badnc <- system.file("extdata/gdal", "bad_netcdf_geoloc_arrays.nc", package = "vapour") sds <- vapour_sds_names(badnc) lcc <- "+proj=lcc +lat_0=-30 +lon_0=134.33 +lat_1=-50 +lat_2=-10 +R=6378137" ex <- c(-3077504, 3968504, -2763621, 3472383) vrt <- vapour_vrt(sds[3], geolocation = sds[2:1], bands = 1) info <- vapour_raster_info(vrt) expect_warning(im <- vapour_warp_raster_dbl(vrt, extent = ex, dimension = info$dimension, projection = lcc, transformation_options = c("SRC_METHOD=NO_GEOTRANSFORM"))) ex <- c(-180, 180, -90, 90) dm <- c(512, 1024) vrt <- vapour_vrt(sds[3], geolocation = sds[2:1], bands = 1) vapour::vapour_set_config("GDAL_NETCDF_BOTTOMUP", "NO") expect_warning(im <- vapour_warp_raster_dbl(vrt, extent = ex, dimension = dm, projection = "OGC:CRS84", transformation_options = c("SRC_METHOD=GEOLOC_ARRAY")))})
15: eval(code, test_env)
16: eval(code, test_env)
17: 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)
18: doTryCatch(return(expr), name, parentenv, handler)
19: tryCatchOne(expr, names, parentenv, handlers[[1L]])
20: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
21: doTryCatch(return(expr), name, parentenv, handler)
22: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]), names[nh], parentenv, handlers[[nh]])
23: tryCatchList(expr, classes, parentenv, handlers)
24: 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) { })
25: test_code(test = NULL, code = exprs, env = env, default_reporter = StopReporter$new())
26: source_file(path, env = env(env), desc = desc, error_call = error_call)
27: FUN(X[[i]], ...)
28: lapply(test_paths, test_one_file, env = env, desc = desc, error_call = error_call)
29: doTryCatch(return(expr), name, parentenv, handler)
30: tryCatchOne(expr, names, parentenv, handlers[[1L]])
31: tryCatchList(expr, classes, parentenv, handlers)
32: tryCatch(code, testthat_abort_reporter = function(cnd) { cat(conditionMessage(cnd), "\n") NULL})
33: with_reporter(reporters$multi, lapply(test_paths, test_one_file, env = env, desc = desc, error_call = error_call))
34: 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)
35: 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)
36: test_dir("testthat", package = package, reporter = reporter, ..., load_package = "installed")
37: test_check("vapour")
An irrecoverable exception occurred. R is aborting now ...
Flavor: r-devel-linux-x86_64-fedora-gcc
Version: 0.9.5
Check: whether package can be installed
Result: ERROR
Installation failed.
Flavors: r-devel-windows-x86_64, r-release-windows-x86_64
Version: 0.9.5
Check: installed package size
Result: NOTE
installed size is 250.7Mb
sub-directories of 1Mb or more:
extdata 2.8Mb
libs 246.5Mb
Flavors: r-release-macos-arm64, r-oldrel-macos-arm64, r-oldrel-macos-x86_64, r-oldrel-windows-x86_64
mdsumner commented
sanitzer results
* using log directory ‘/data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour.Rcheck’
* using R Under development (unstable) (2024-05-27 r86634)
* using platform: x86_64-pc-linux-gnu
* R was compiled by
clang version 18.1.6
flang-new version 18.1.6
* running under: Fedora Linux 36 (Workstation Edition)
* using session charset: UTF-8
* using option ‘--no-stop-on-test-error’
* checking for file ‘vapour/DESCRIPTION’ ... OK
* this is package ‘vapour’ version ‘0.9.5’
* package encoding: UTF-8
* checking package dependencies ... OK
* checking if this is a source package ... OK
* checking if there is a namespace ... OK
* checking for hidden files and directories ... OK
* checking for portable file names ... OK
* checking whether package ‘vapour’ can be installed ... [255s/244s] OK
* used C++ compiler: ‘clang version 18.1.6’
* checking package directory ... OK
* checking whether the package can be loaded ... OK
* checking whether the package can be loaded with stated dependencies ... OK
* checking whether the package can be unloaded cleanly ... OK
* checking whether the namespace can be loaded with stated dependencies ... OK
* checking whether the namespace can be unloaded cleanly ... OK
* checking loading without being on the library search path ... OK
* checking compiled code ... OK
* checking installed files from ‘inst/doc’ ... OK
* checking files in ‘vignettes’ ... OK
* checking examples ... ERROR
Running examples in ‘vapour-Ex.R’ failed
The error most likely occurred in:
> ### Name: gdal_raster_data
> ### Title: General raster read and convert
> ### Aliases: gdal_raster_data gdal_raster_dsn gdal_raster_image
>
> ### ** Examples
>
> dsn <- system.file("extdata/sst.tif", package = "vapour")
> par(mfrow = c(2, 2))
> ## do nothing, get native
> X <- gdal_raster_data(dsn)
/data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/vector/traits.h:46:41: runtime error: reference binding to misaligned address 0x000000000001 for type 'typename storage_type<13>::type' (aka 'int'), which requires 4 byte alignment
0x000000000001: note: pointer points here
<memory cannot be printed>
#0 0x7ff71965a66b in Rcpp::traits::r_vector_cache<13, Rcpp::PreserveStorage>::ref(long) /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/vector/traits.h:46:34
#1 0x7ff71965a66b in Rcpp::Vector<13, Rcpp::PreserveStorage>::operator[](long) /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/vector/Vector.h:340:57
#2 0x7ff71965a66b in gdalraster::gdalH_open_dsn(char const*, Rcpp::Vector<13, Rcpp::PreserveStorage>) /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/../inst/include/gdalraster/gdalraster.h:106:7
#3 0x7ff71965aeb0 in gdalwarpgeneral::gdal_warp_general(Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>) /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/../inst/include/gdalwarpgeneral/gdalwarpgeneral.h:82:18
#4 0x7ff719659774 in warp_general_cpp(Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>) /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/000-warpgeneral.cpp:19:10
#5 0x7ff7196a1f8d in _vapour_warp_general_cpp /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/RcppExports.cpp:52:34
#6 0x55c784d3ae0b in R_doDotCall (/data/gannet/ripley/R/R-clang/bin/exec/R+0xf1e0b)
#7 0x55c784d3b6fd in do_dotcall (/data/gannet/ripley/R/R-clang/bin/exec/R+0xf26fd)
#8 0x55c784d79a90 in bcEval_loop eval.c
#9 0x55c784d70257 in bcEval eval.c
#10 0x55c784d6f984 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126984)
#11 0x55c784d95b94 in R_execClosure eval.c
#12 0x55c784d9506b in applyClosure_core eval.c
#13 0x55c784d6fde1 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126de1)
#14 0x55c784d9b1b6 in do_set (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1521b6)
#15 0x55c784d6fbb5 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126bb5)
#16 0x55c784dca1eb in Rf_ReplIteration (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1811eb)
#17 0x55c784dcbc5e in run_Rmainloop (/data/gannet/ripley/R/R-clang/bin/exec/R+0x182c5e)
#18 0x55c784dcbcca in Rf_mainloop (/data/gannet/ripley/R/R-clang/bin/exec/R+0x182cca)
#19 0x55c784cb1947 in main (/data/gannet/ripley/R/R-clang/bin/exec/R+0x68947)
#20 0x7ff72742950f in __libc_start_call_main (/lib64/libc.so.6+0x2950f) (BuildId: 8257ee907646e9b057197533d1e4ac8ede7a9c5c)
#21 0x7ff7274295c8 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x295c8) (BuildId: 8257ee907646e9b057197533d1e4ac8ede7a9c5c)
#22 0x55c784cb1864 in _start (/data/gannet/ripley/R/R-clang/bin/exec/R+0x68864)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/vector/traits.h:46:41
UndefinedBehaviorSanitizer:DEADLYSIGNAL
==3141224==ERROR: UndefinedBehaviorSanitizer: SEGV on unknown address 0x000000000001 (pc 0x7ff71965a66c bp 0x7fff585cbb70 sp 0x7fff585cbb40 T3141224)
==3141224==The signal is caused by a READ memory access.
==3141224==Hint: address points to the zero page.
#0 0x7ff71965a66c in gdalraster::gdalH_open_dsn(char const*, Rcpp::Vector<13, Rcpp::PreserveStorage>) /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/../inst/include/gdalraster/gdalraster.h:106:14
#1 0x7ff71965aeb0 in gdalwarpgeneral::gdal_warp_general(Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>) /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/../inst/include/gdalwarpgeneral/gdalwarpgeneral.h:82:18
#2 0x7ff719659774 in warp_general_cpp(Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>) /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/000-warpgeneral.cpp:19:10
#3 0x7ff7196a1f8d in _vapour_warp_general_cpp /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/RcppExports.cpp:52:34
#4 0x55c784d3ae0b in R_doDotCall (/data/gannet/ripley/R/R-clang/bin/exec/R+0xf1e0b)
#5 0x55c784d3b6fd in do_dotcall (/data/gannet/ripley/R/R-clang/bin/exec/R+0xf26fd)
#6 0x55c784d79a90 in bcEval_loop eval.c
#7 0x55c784d70257 in bcEval eval.c
#8 0x55c784d6f984 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126984)
#9 0x55c784d95b94 in R_execClosure eval.c
#10 0x55c784d9506b in applyClosure_core eval.c
#11 0x55c784d6fde1 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126de1)
#12 0x55c784d9b1b6 in do_set (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1521b6)
#13 0x55c784d6fbb5 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126bb5)
#14 0x55c784dca1eb in Rf_ReplIteration (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1811eb)
#15 0x55c784dcbc5e in run_Rmainloop (/data/gannet/ripley/R/R-clang/bin/exec/R+0x182c5e)
#16 0x55c784dcbcca in Rf_mainloop (/data/gannet/ripley/R/R-clang/bin/exec/R+0x182cca)
#17 0x55c784cb1947 in main (/data/gannet/ripley/R/R-clang/bin/exec/R+0x68947)
#18 0x7ff72742950f in __libc_start_call_main (/lib64/libc.so.6+0x2950f) (BuildId: 8257ee907646e9b057197533d1e4ac8ede7a9c5c)
#19 0x7ff7274295c8 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x295c8) (BuildId: 8257ee907646e9b057197533d1e4ac8ede7a9c5c)
#20 0x55c784cb1864 in _start (/data/gannet/ripley/R/R-clang/bin/exec/R+0x68864)
UndefinedBehaviorSanitizer can not provide additional info.
SUMMARY: UndefinedBehaviorSanitizer: SEGV /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/../inst/include/gdalraster/gdalraster.h:106:14 in gdalraster::gdalH_open_dsn(char const*, Rcpp::Vector<13, Rcpp::PreserveStorage>)
==3141224==ABORTING
* checking tests ... ERROR
Running ‘spelling.R’
Running ‘testthat.R’
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
> library(testthat)
> library(vapour)
>
> test_check("vapour")
/data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/vector/traits.h:46:41: runtime error: reference binding to misaligned address 0x000000000001 for type 'typename storage_type<13>::type' (aka 'int'), which requires 4 byte alignment
0x000000000001: note: pointer points here
<memory cannot be printed>
#0 0x7f272415266b in Rcpp::traits::r_vector_cache<13, Rcpp::PreserveStorage>::ref(long) /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/vector/traits.h:46:34
#1 0x7f272415266b in Rcpp::Vector<13, Rcpp::PreserveStorage>::operator[](long) /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/vector/Vector.h:340:57
#2 0x7f272415266b in gdalraster::gdalH_open_dsn(char const*, Rcpp::Vector<13, Rcpp::PreserveStorage>) /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/../inst/include/gdalraster/gdalraster.h:106:7
#3 0x7f272418937a in gdalwarpmem::gdal_warp_in_memory(Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>) /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/../inst/include/gdalwarpmem/gdalwarpmem.h:48:20
#4 0x7f2724183722 in warp_in_memory_gdal_cpp(Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>) /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/00_raster.cpp:64:10
#5 0x7f27241ab1cd in _vapour_warp_in_memory_gdal_cpp /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/RcppExports.cpp:589:34
#6 0x56278556de0b in R_doDotCall (/data/gannet/ripley/R/R-clang/bin/exec/R+0xf1e0b)
#7 0x56278556e6fd in do_dotcall (/data/gannet/ripley/R/R-clang/bin/exec/R+0xf26fd)
#8 0x5627855aca90 in bcEval_loop eval.c
#9 0x5627855a3257 in bcEval eval.c
#10 0x5627855a2984 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126984)
#11 0x5627855c8b94 in R_execClosure eval.c
#12 0x5627855c806b in applyClosure_core eval.c
#13 0x5627855a2de1 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126de1)
#14 0x5627855ce1b6 in do_set (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1521b6)
#15 0x5627855a2bb5 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126bb5)
#16 0x5627855cd2aa in do_begin (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1512aa)
#17 0x5627855a2bb5 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126bb5)
#18 0x5627855cf4df in do_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1534df)
#19 0x5627855aca90 in bcEval_loop eval.c
#20 0x5627855a3257 in bcEval eval.c
#21 0x5627855a2984 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126984)
#22 0x5627855c8b94 in R_execClosure eval.c
#23 0x5627855c806b in applyClosure_core eval.c
#24 0x5627855a2de1 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126de1)
#25 0x5627855cf8b7 in do_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1538b7)
#26 0x5627855aca90 in bcEval_loop eval.c
#27 0x5627855a3257 in bcEval eval.c
#28 0x5627855a2984 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126984)
#29 0x5627855c8b94 in R_execClosure eval.c
#30 0x5627855c806b in applyClosure_core eval.c
#31 0x5627855cb704 in R_forceAndCall (/data/gannet/ripley/R/R-clang/bin/exec/R+0x14f704)
#32 0x5627854f75ab in do_lapply (/data/gannet/ripley/R/R-clang/bin/exec/R+0x7b5ab)
#33 0x56278561051d in do_internal (/data/gannet/ripley/R/R-clang/bin/exec/R+0x19451d)
#34 0x5627855acd05 in bcEval_loop eval.c
#35 0x5627855a3257 in bcEval eval.c
#36 0x5627855a2984 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126984)
#37 0x5627855c8b94 in R_execClosure eval.c
#38 0x5627855c806b in applyClosure_core eval.c
#39 0x5627855a2de1 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126de1)
#40 0x5627855fd1eb in Rf_ReplIteration (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1811eb)
#41 0x5627855fec5e in run_Rmainloop (/data/gannet/ripley/R/R-clang/bin/exec/R+0x182c5e)
#42 0x5627855fecca in Rf_mainloop (/data/gannet/ripley/R/R-clang/bin/exec/R+0x182cca)
#43 0x5627854e4947 in main (/data/gannet/ripley/R/R-clang/bin/exec/R+0x68947)
#44 0x7f2734a2950f in __libc_start_call_main (/lib64/libc.so.6+0x2950f) (BuildId: 8257ee907646e9b057197533d1e4ac8ede7a9c5c)
#45 0x7f2734a295c8 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x295c8) (BuildId: 8257ee907646e9b057197533d1e4ac8ede7a9c5c)
#46 0x5627854e4864 in _start (/data/gannet/ripley/R/R-clang/bin/exec/R+0x68864)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/vector/traits.h:46:41
UndefinedBehaviorSanitizer:DEADLYSIGNAL
==3141659==ERROR: UndefinedBehaviorSanitizer: SEGV on unknown address 0x000000000001 (pc 0x7f272415266c bp 0x7ffe0b4b9290 sp 0x7ffe0b4b9260 T3141659)
==3141659==The signal is caused by a READ memory access.
==3141659==Hint: address points to the zero page.
#0 0x7f272415266c in gdalraster::gdalH_open_dsn(char const*, Rcpp::Vector<13, Rcpp::PreserveStorage>) /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/../inst/include/gdalraster/gdalraster.h:106:14
#1 0x7f272418937a in gdalwarpmem::gdal_warp_in_memory(Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>) /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/../inst/include/gdalwarpmem/gdalwarpmem.h:48:20
#2 0x7f2724183722 in warp_in_memory_gdal_cpp(Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>, Rcpp::Vector<14, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>) /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/00_raster.cpp:64:10
#3 0x7f27241ab1cd in _vapour_warp_in_memory_gdal_cpp /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/RcppExports.cpp:589:34
#4 0x56278556de0b in R_doDotCall (/data/gannet/ripley/R/R-clang/bin/exec/R+0xf1e0b)
#5 0x56278556e6fd in do_dotcall (/data/gannet/ripley/R/R-clang/bin/exec/R+0xf26fd)
#6 0x5627855aca90 in bcEval_loop eval.c
#7 0x5627855a3257 in bcEval eval.c
#8 0x5627855a2984 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126984)
#9 0x5627855c8b94 in R_execClosure eval.c
#10 0x5627855c806b in applyClosure_core eval.c
#11 0x5627855a2de1 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126de1)
#12 0x5627855ce1b6 in do_set (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1521b6)
#13 0x5627855a2bb5 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126bb5)
#14 0x5627855cd2aa in do_begin (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1512aa)
#15 0x5627855a2bb5 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126bb5)
#16 0x5627855cf4df in do_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1534df)
#17 0x5627855aca90 in bcEval_loop eval.c
#18 0x5627855a3257 in bcEval eval.c
#19 0x5627855a2984 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126984)
#20 0x5627855c8b94 in R_execClosure eval.c
#21 0x5627855c806b in applyClosure_core eval.c
#22 0x5627855a2de1 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126de1)
#23 0x5627855cf8b7 in do_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1538b7)
#24 0x5627855aca90 in bcEval_loop eval.c
#25 0x5627855a3257 in bcEval eval.c
#26 0x5627855a2984 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126984)
#27 0x5627855c8b94 in R_execClosure eval.c
#28 0x5627855c806b in applyClosure_core eval.c
#29 0x5627855cb704 in R_forceAndCall (/data/gannet/ripley/R/R-clang/bin/exec/R+0x14f704)
#30 0x5627854f75ab in do_lapply (/data/gannet/ripley/R/R-clang/bin/exec/R+0x7b5ab)
#31 0x56278561051d in do_internal (/data/gannet/ripley/R/R-clang/bin/exec/R+0x19451d)
#32 0x5627855acd05 in bcEval_loop eval.c
#33 0x5627855a3257 in bcEval eval.c
#34 0x5627855a2984 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126984)
#35 0x5627855c8b94 in R_execClosure eval.c
#36 0x5627855c806b in applyClosure_core eval.c
#37 0x5627855a2de1 in Rf_eval (/data/gannet/ripley/R/R-clang/bin/exec/R+0x126de1)
#38 0x5627855fd1eb in Rf_ReplIteration (/data/gannet/ripley/R/R-clang/bin/exec/R+0x1811eb)
#39 0x5627855fec5e in run_Rmainloop (/data/gannet/ripley/R/R-clang/bin/exec/R+0x182c5e)
#40 0x5627855fecca in Rf_mainloop (/data/gannet/ripley/R/R-clang/bin/exec/R+0x182cca)
#41 0x5627854e4947 in main (/data/gannet/ripley/R/R-clang/bin/exec/R+0x68947)
#42 0x7f2734a2950f in __libc_start_call_main (/lib64/libc.so.6+0x2950f) (BuildId: 8257ee907646e9b057197533d1e4ac8ede7a9c5c)
#43 0x7f2734a295c8 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x295c8) (BuildId: 8257ee907646e9b057197533d1e4ac8ede7a9c5c)
#44 0x5627854e4864 in _start (/data/gannet/ripley/R/R-clang/bin/exec/R+0x68864)
UndefinedBehaviorSanitizer can not provide additional info.
SUMMARY: UndefinedBehaviorSanitizer: SEGV /data/gannet/ripley/R/packages/tests-clang-UBSAN/vapour/src/../inst/include/gdalraster/gdalraster.h:106:14 in gdalraster::gdalH_open_dsn(char const*, Rcpp::Vector<13, Rcpp::PreserveStorage>)
==3141659==ABORTING
* checking package vignettes ... OK
* checking re-building of vignette outputs ... [26s/65s] OK
* DONE
Status: 2 ERRORs
mdsumner commented
I think it's the bad format used for "-te", this was copied in the general warp and the original.
Segfaults on CRAN:
dsn <- system.file("extdata/sst.tif", package = "vapour")
- gdal_raster_data(dsn) - gccUBSAN - "GDAL 3.4.3"
- vapour_warp_raster(dsn) - gccUBSAN - "GDAL 3.4.3"
- gdal_raster_data(dsn) -clangUBSAN - "GDAL 3.4.3"
- vapour_warp_raster(dsn) - clangUBSAN - "GDAL 3.4.3"
- gdal_raster_data(dsn) - M1MAC ''
- gdal_raster_data(dsn) - valgrind "GDAL 3.6.4"
mdsumner commented
it's not -te
this on normal gha macos-latest
> base::assign(".ptime", proc.time(), pos = "CheckExEnv")
> ### Name: vapour_warp_raster_raw
> ### Title: type safe(r) raster warp
> ### Aliases: vapour_warp_raster_raw vapour_warp_raster_int
> ### vapour_warp_raster_dbl vapour_warp_raster_chr vapour_warp_raster_hex
>
> ### ** Examples
>
> b <- 4e5
> f <- system.file("extdata", "sst.tif", package = "vapour")
> prj <- "+proj=aeqd +lon_0=147 +lat_0=-42"
> bytes <- vapour_warp_raster_raw(f, extent = c(-b, b, -b, b),
+ dimension = c(18, 2),
+ bands = 1,
+ projection = prj)
ERROR 1: Zero positional arguments expected
*** caught segfault ***
address 0x58, cause 'invalid permissions'
Traceback:
1: warp_in_memory_gdal_cpp(x, source_WKT = source_projection, target_WKT = projection, target_extent = as.numeric(extent), target_dim = as.integer(dimension), bands = as.integer(bands), source_extent = as.numeric(source_extent), resample = resample, silent = silent, band_output_type = band_output_type, options = options, nomd = nomd, overview, nara = nara)
2: vapour_warp_raster(x, bands = bands, extent = extent, dimension = dimension, projection = projection, set_na = set_na, source_projection = source_projection, source_extent = source_extent, resample = resample, silent = silent, band_output_type = "Byte", warp_options = warp_options, transformation_options = transformation_options, open_options = open_options, options = options, ...)
3: vapour_warp_raster_raw(f, extent = c(-b, b, -b, b), dimension = c(18, 2), bands = 1, projection = prj)
An irrecoverable exception occurred. R is aborting now ...
mdsumner commented
ah so wch/r-debug is not new enough, that RD is only early May
there's something new in R-devel
mdsumner commented
Update from CRAN (I wish the dialogue was public)
It looks like this was triggered by the R-devel change c86629, so may go
away in due course.
But maybe not all, as the Debian systems had a system update to GDAL
3.9.0 and still segfault when R is rolled back.
So please keep an eye on the results page.
mdsumner commented
This is fixed, was int in place of IntegerVector
Discussion on Rcpp 1308