hypertidy/vapour

segfault on CRAN 2024-05-28

Closed this issue · 6 comments

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

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

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"

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

ah so wch/r-debug is not new enough, that RD is only early May

there's something new in R-devel

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.

This is fixed, was int in place of IntegerVector

Discussion on Rcpp 1308