[pdal] free(): double free detected in tcache 2

Javier Jimenez Shaw j1 at jimenezshaw.com
Sun Sep 11 10:31:56 PDT 2022


Hi

I am trying to compile master branch of PDAL in my Ubuntu 20.04
Everything seems to be right during configuration and compilation. However,
running an application returns "free(): double free detected in tcache 2",
and core dump.

Debugging in a test (Log, t2), it failed calling "popen", that sounds very
strange to me.

Is this a known problem? Do I miss anything to build it properly?

I want to run the unit tests, but many are failing due to this problem.

The steps I made are these. There are a few warnings while compiling, but
no errors:

$ mkdir build
$ cd build/
$ cmake -G Ninja ..
-- The CXX compiler identification is GNU 9.4.0
-- The C compiler identification is GNU 9.4.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/lib/ccache/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/lib/ccache/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found GDAL: /usr/lib/libgdal.so (found suitable version "3.0.4", minimum
required is "3.0")
-- Found GeoTIFF: /usr/lib/x86_64-linux-gnu/libgeotiff.so
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")
-- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version
"2.9.10")
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so (found version
"7.68.0")
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found suitable
version "1.1.1f", minimum required is "1.1")
-- Found PostgreSQL: /usr/lib/x86_64-linux-gnu/libpq.so (found version
"12.12")
-- Found PythonInterp: /usr/bin/python3.8 (found version "3.8.10")
-- Could NOT find LIBEXECINFO (missing: LIBEXECINFO_LIBRARY)
-- Could NOT find LIBUNWIND (missing: LIBUNWIND_LIBRARY
LIBUNWIND_INCLUDE_DIR)
-- The following features have been enabled:

 * PostgreSQL PointCloud plugin, read/write PostgreSQL PointCloud objects
 * Unit tests, PDAL unit tests

-- The following OPTIONAL packages have been found:

 * ZSTD
   General compression support
 * LibXml2
 * PkgConfig
 * OpenSSL (required version >= 1.1)
 * PythonInterp

-- The following REQUIRED packages have been found:

 * GDAL (required version >= 3.0)
   Provides general purpose raster, vector, and reference system support
 * GeoTIFF
 * ZLIB
   Compression support in BPF
 * CURL
 * PostgreSQL
 * Threads, The thread library of the system

-- The following features have been disabled:

 * Bash completion, completion for PDAL command line
 * CPD plugin, Coherent Point Drift (CPD) computes rigid or nonrigid
transformations between point sets
 * Draco plugin, Read data in the draco format
 * I3S plugin, Read from a I3S server or from a SLPK file
 * Icebridge plugin, read data in the Icebridge format
 * HDF plugin, read data in the HDF format
 * Matlab plugin, write data to a .mat file
 * NITF plugin, read/write LAS data wrapped in NITF
 * OpenSceneGraph plugin, read/write OpenSceneGraph objects
 * RiVLib plugin, read data in the RXP format
 * rdblib plugin, read data in the RDB format
 * MBIO plugin, add features that depend on MBIO
 * FBX plugin, add features that depend on FBX
 * TEASER++ plugin, TEASER++ computes transformations between point sets
 * TileDB plugin, read/write data from TileDB
 * Trajectory plugin, Compute trajectory from LAS input
 * E57 plugin, read/write data to and from e57 format

-- The following OPTIONAL packages have not been found:

 * absl
 * Libexecinfo
 * Libunwind

-- Configuring done
-- Generating done
-- Build files have been written to: /home/jshaw/jjimenezshaw/PDAL/build

$ ninja
[195/531] Building CXX object
CMakeFiles/pdal_base.dir/pdal/SpatialReference.cpp.o
/home/jshaw/jjimenezshaw/PDAL/pdal/SpatialReference.cpp: In member function
‘std::string pdal::SpatialReference::getPROJJSON() const’:
/home/jshaw/jjimenezshaw/PDAL/pdal/SpatialReference.cpp:157:1: warning: no
return statement in function returning non-void [-Wreturn-type]
  157 | }
      | ^
[245/531] Building CXX object
CMakeFiles/pdal_base.dir/io/private/las/Geotiff.cpp.o
In file included from /usr/include/geotiff/geo_tiffp.h:38,
                 from
/home/jshaw/jjimenezshaw/PDAL/io/private/las/Geotiff.cpp:41:
/usr/include/geotiff/cpl_serv.h:132:25: warning: redundant redeclaration of
‘void _GTIFFree(void*)’ in same scope [-Wredundant-decls]
  132 | #define VSIFree         _GTIFFree
      |                         ^~~~~~~~~
/home/jshaw/jjimenezshaw/PDAL/io/private/las/Geotiff.cpp:78:6: note: in
expansion of macro ‘VSIFree’
   78 | void VSIFree(void *data);
      |      ^~~~~~~
In file included from
/home/jshaw/jjimenezshaw/PDAL/io/private/las/Geotiff.cpp:41:
/usr/include/geotiff/geo_tiffp.h:105:22: note: previous declaration of
‘void _GTIFFree(gdata_t)’
  105 | extern void GTIF_DLL _GTIFFree(gdata_t data);
      |                      ^~~~~~~~~
[531/531] Linking CXX executable bin/pdal_io_ilvis2_test

$ bin/pdal info ../test/data/las/autzen_trim.las
free(): double free detected in tcache 2
Aborted (core dumped)

Thank you,
Javier

.___ ._ ..._ .. . ._.  .___ .. __ . _. . __..  ... .... ._ .__
Entre dos pensamientos racionales
hay infinitos pensamientos irracionales.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pdal/attachments/20220911/271061b0/attachment.htm>


More information about the pdal mailing list