hypertidy / vapour

GDAL API package for R
https://hypertidy.github.io/vapour/
80 stars 9 forks source link

remaining CRAN issues #230

Open mdsumner opened 3 weeks ago

mdsumner commented 3 weeks ago

No more address sanitizer problems.

There's valgrind reports with geometry read :

https://github.com/hypertidy/vapour/actions/runs/9396874849/job/25878915640

Considering summarizing like this:

the segfaults afaict were due to passing int in place of Rcpp::IntegerVector. 
The remaining sanitizer messages I've seen in my development sources were due to input strings like "+proj=longlat" (old style projstrings only for longlat crs) to GDAL's OGRSpatialReference::SetFromUserInput(). 
With rhub::rhub_check() running clang-asan I now pass check with no errors or warnings. The version of PROJ that it runs with is 8.2.1, and so possibly the problem is related to https://github.com/OSGeo/PROJ/pull/3834
mdsumner commented 2 weeks ago

Still this for m CRAN,but they accepted

NB: There are still some leaks from gdal via the gdalraster headers such as

vapour.Rcheck/vapour-Ex.Rout:==4069210== 303 bytes in 1 blocks are
definitely lost in loss record 5,292 of 7,257
vapour.Rcheck/vapour-Ex.Rout:==4069210==    at 0x484280F: malloc
(/builddir/build/BUILD/valgrind-3.22.0/coregrind/m_replacemalloc/vg_replace_malloc.c:442)
vapour.Rcheck/vapour-Ex.Rout:==4069210==    by 0x185FA0AA: CPLMalloc (in
/data/blackswan/ripley/extras/lib64/libgdal.so.32.3.6.4)
vapour.Rcheck/vapour-Ex.Rout:==4069210==    by 0x185FA16A: CPLStrdup (in
/data/blackswan/ripley/extras/lib64/libgdal.so.32.3.6.4)
vapour.Rcheck/vapour-Ex.Rout:==4069210==    by 0x1825AB0F:
gdalraster::gdal_list_geolocation(Rcpp::Vector<16,
Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>)
(test/vapour.Rcheck/00_pkg_src/vapour/src/../inst/include/gdalras
ter/gdalraster.h:1288)
vapour.Rcheck/vapour-Ex.Rout:==4069210==    by 0x1825879F:
raster_list_geolocation_gdal_cpp(Rcpp::Vector<16,
Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::Pres
erveStorage>) (test/vapour.Rcheck/00_pkg_src/vapour/src/00_raster.cpp:17)
vapour.Rcheck/vapour-Ex.Rout:==4069210==    by 0x1826E94B:
_vapour_raster_list_geolocation_gdal_cpp
(test/vapour.Rcheck/00_pkg_src/vapour/src/RcppExports.cpp:507)
Show quoted text
mdsumner commented 1 week ago

on rhub:

  ==3177== 64 (48 direct, 16 indirect) bytes in 2 blocks are definitely lost in loss record 4,319 of 8,821
  ==3177==    at 0x484A074: realloc (vg_replace_malloc.c:1690)
  ==3177==    by 0x3005283C: VSIReallocVerbose (in /usr/lib64/libgdal.so.32.3.6.4)
  ==3177==    by 0x30045B93: CSLAddStringMayFail (in /usr/lib64/libgdal.so.32.3.6.4)
  ==3177==    by 0x30045C04: CSLAddString (in /usr/lib64/libgdal.so.32.3.6.4)
  ==3177==    by 0x2FC489EB: 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>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>) [clone .isra.0] (gdalwarpgeneral.h:124)
  ==3177==    by 0x2FC4ACD8: 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>, Rcpp::Vector<10, Rcpp::PreserveStorage>, Rcpp::Vector<10, Rcpp::PreserveStorage>) (000-warpgeneral.cpp:33)
  ==3177==    by 0x2FC7D004: _vapour_warp_general_cpp (RcppExports.cpp:32)
  ==3177==    by 0x4958011: R_doDotCall (dotcode.c:813)
  ==3177==    by 0x4958767: do_dotcall (dotcode.c:1437)
  ==3177==    by 0x4994B00: bcEval_loop (eval.c:8140)
  ==3177==    by 0x49AE3C2: bcEval (eval.c:7523)
  ==3177==    by 0x49AE3C2: bcEval (eval.c:7508)
  ==3177==    by 0x49AE71A: Rf_eval (eval.c:1167)

reported by CRAN

NB: There are still some leaks from gdal via the gdalraster headers such as

vapour.Rcheck/vapour-Ex.Rout:==4069210== 303 bytes in 1 blocks are
definitely lost in loss record 5,292 of 7,257
vapour.Rcheck/vapour-Ex.Rout:==4069210==    at 0x484280F: malloc
(/builddir/build/BUILD/valgrind-3.22.0/coregrind/m_replacemalloc/vg_replace_malloc.c:442)
vapour.Rcheck/vapour-Ex.Rout:==4069210==    by 0x185FA0AA: CPLMalloc (in
/data/blackswan/ripley/extras/lib64/libgdal.so.32.3.6.4)
vapour.Rcheck/vapour-Ex.Rout:==4069210==    by 0x185FA16A: CPLStrdup (in
/data/blackswan/ripley/extras/lib64/libgdal.so.32.3.6.4)
vapour.Rcheck/vapour-Ex.Rout:==4069210==    by 0x1825AB0F:
gdalraster::gdal_list_geolocation(Rcpp::Vector<16,
Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::PreserveStorage>)
(test/vapour.Rcheck/00_pkg_src/vapour/src/../inst/include/gdalras
ter/gdalraster.h:1288)
vapour.Rcheck/vapour-Ex.Rout:==4069210==    by 0x1825879F:
raster_list_geolocation_gdal_cpp(Rcpp::Vector<16,
Rcpp::PreserveStorage>, Rcpp::Vector<13, Rcpp::Pres
erveStorage>) (test/vapour.Rcheck/00_pkg_src/vapour/src/00_raster.cpp:17)
vapour.Rcheck/vapour-Ex.Rout:==4069210==    by 0x1826E94B:
_vapour_raster_list_geolocation_gdal_cpp
(test/vapour.Rcheck/00_pkg_src/vapour/src/RcppExports.cpp:507)