r-lidar / rlas

R package to read and write las and laz files used to store LiDAR data
https://cran.r-project.org/package=rlas
GNU General Public License v3.0
34 stars 14 forks source link

Addittionnal issues with valgrind #19

Closed Jean-Romain closed 6 years ago

Jean-Romain commented 6 years ago

Many issues with valgrind. Thouthand of them were not raised in the previous release (1.2.0) but are now raise from a code that did not changed :disappointed: . The hundreds of other ones come from LASlib code. Again this code exist since a year and had never raise any error. A lot of pain in view.

Valgrind report https://www.stats.ox.ac.uk/pub/bdr/memtests/valgrind/rlas/tests/testthat.Rout

cd rlas/test
R -d "valgrind --tool=memcheck --leak-check=full" --vanilla -f testthat.R
Jean-Romain commented 6 years ago

The remaining errors are from LASlib

==17385== Syscall param write(buf) points to uninitialised byte(s)
==17385==    at 0x57762C0: __write_nocancel (syscall-template.S:84)
==17385==    by 0x56F7BFE: _IO_file_write@@GLIBC_2.2.5 (fileops.c:1263)
==17385==    by 0x56F9408: new_do_write (fileops.c:518)
==17385==    by 0x56F9408: _IO_do_write@@GLIBC_2.2.5 (fileops.c:494)
==17385==    by 0x56FA1CE: _IO_switch_to_get_mode (genops.c:177)
==17385==    by 0x56F7509: _IO_file_seekoff@@GLIBC_2.2.5 (fileops.c:1012)
==17385==    by 0x56F5E68: fseeko (fseeko.c:36)
==17385==    by 0xD9AFD6E: ByteStreamOutFile::seek(long long) (bytestreamout_file.hpp:155)
==17385==    by 0xD9ACDD4: LASwriterLAS::update_header(LASheader const*, bool, bool) (laswriter_las.cpp:920)
==17385==    by 0xDA41A04: C_writer(Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<19, Rcpp::PreserveStorage>, Rcpp::DataFrame_Impl<Rcpp::PreserveStorage>) (writeLAS.cpp:412)
==17385==    by 0xDA4B72B: _rlas_C_writer (RcppExports.cpp:231)
==17385==    by 0x4F0CC9B: ??? (in /usr/lib/R/lib/libR.so)
==17385==    by 0x4F4A20C: Rf_eval (in /usr/lib/R/lib/libR.so)
==17385==  Address 0x918c2c8 is 280 bytes inside a block of size 4,096 alloc'd
==17385==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==17385==    by 0x56EC1D4: _IO_file_doallocate (filedoalloc.c:127)
==17385==    by 0x56EEFFA: setvbuf (iosetvbuf.c:60)
==17385==    by 0xD9AF83D: LASwriterLAS::open(char const*, LASheader const*, unsigned int, int, int, int) (laswriter_las.cpp:74)
==17385==    by 0xD9EE2B3: LASwriteOpener::open(LASheader const*) (laswriter.cpp:73)
==17385==    by 0xDA3D731: C_writer(Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<19, Rcpp::PreserveStorage>, Rcpp::DataFrame_Impl<Rcpp::PreserveStorage>) (writeLAS.cpp:279)
==17385==    by 0xDA4B72B: _rlas_C_writer (RcppExports.cpp:231)
==17385==    by 0x4F0CC9B: ??? (in /usr/lib/R/lib/libR.so)
==17385==    by 0x4F4A20C: Rf_eval (in /usr/lib/R/lib/libR.so)
==17385==    by 0x4F4DF91: ??? (in /usr/lib/R/lib/libR.so)
==17385==    by 0x4F4A0E1: Rf_eval (in /usr/lib/R/lib/libR.so)
==17385==    by 0x4F4CCAD: ??? (in /usr/lib/R/lib/libR.so)
==17385==  Uninitialised value was created by a heap allocation
==17385==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==17385==    by 0xDA40B93: add_vlr (lasdefinitions.hpp:554)
==17385==    by 0xDA40B93: update_extra_bytes_vlr (lasdefinitions.hpp:912)
==17385==    by 0xDA40B93: C_writer(Rcpp::Vector<16, Rcpp::PreserveStorage>, Rcpp::Vector<19, Rcpp::PreserveStorage>, Rcpp::DataFrame_Impl<Rcpp::PreserveStorage>) (writeLAS.cpp:264)
==17385==    by 0xDA4B72B: _rlas_C_writer (RcppExports.cpp:231)
==17385==    by 0x4F0CC9B: ??? (in /usr/lib/R/lib/libR.so)
==17385==    by 0x4F4A20C: Rf_eval (in /usr/lib/R/lib/libR.so)
==17385==    by 0x4F4DF91: ??? (in /usr/lib/R/lib/libR.so)
==17385==    by 0x4F4A0E1: Rf_eval (in /usr/lib/R/lib/libR.so)
==17385==    by 0x4F4CCAD: ??? (in /usr/lib/R/lib/libR.so)
==17385==    by 0x4F49FEB: Rf_eval (in /usr/lib/R/lib/libR.so)
==17385==    by 0x4F4C00E: ??? (in /usr/lib/R/lib/libR.so)
==17385==    by 0x4F49DB5: Rf_eval (in /usr/lib/R/lib/libR.so)
==17385==    by 0x4F4CCAD: ??? (in /usr/lib/R/lib/libR.so)
==17385== 
══ testthat results  ═══════════════════════════════════════════════════════════
OK: 59 SKIPPED: 0 FAILED: 0