isl-org / isl-org/Open3D

Eigen allocation segmentation fault

Open
#2,604 3 comments 0 reactions 0 assignees View on GitHub
build/install
Dominant language
C++
Stars
14k
Forks
2.6k
Avg merge
5d 18h
Merged PRs (30d)
6

Description

I'm trying to make some operations on Pointcloud but when calling VoxelDownSample function i'm getting Segmentation fault signal.

Code:
```
open3d::geometry::PointCloud open3d_source_original;
open3d::geometry::PointCloud open3d_source_down;
createPointCloud(open3d_source_original);
open3d_source_down = *open3d_source_original.VoxelDownSample(0.01);
````

createPointCloud is my function which creates PointCloud from csv file and it works fine.

gdb output:

```
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51

#1 0x00007ffff6eb4921 in __GI_abort () at abort.c:79

#2 0x00007ffff7ad6957 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6

#3 0x00007ffff7adcae6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6

#4 0x00007ffff7adcb21 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6

#5 0x00007ffff7adcd54 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6

#6 0x00007ffff7b05012 in std::__throw_bad_alloc() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6

#7 0x0000555555563476 in __gnu_cxx::new_allocator >::allocate(unsigned long, void const*) ()

#8 0x0000555555562bec in std::allocator_traits > >::allocate(std::allocator >&, unsigned long) ()

#9 0x0000555555562088 in std::_Vector_base, std::allocator > >::_M_allocate(unsigned long) ()

#10 0x00005555555613ac in Eigen::Matrix* std::vector, std::allocator > >::_M_allocate_and_copy<__gnu_cxx::__normal_iterator const*, std::vector, std::allocator > > > >(unsigned long, __gnu_cxx::__normal_iterator const*, std::vector, std::allocator > > >, __gnu_cxx::__normal_iterator const*, std::vector, std::allocator > > >) ()

#11 0x00005555555606e2 in std::vector, std::allocator > >::operator=(std::vector, std::allocator > > const&) ()
#12 0x000055555555fcfa in open3d::geometry::PointCloud::operator=(open3d::geometry::PointCloud const&) ()

#13 0x000055555555f400 in main ()
```

Valgrind output:

```
==14534== Invalid read of size 8

==14534== at 0x114D59: std::vector, std::allocator > >::begin() const (in /home/rufus/CLionProjects/isolatedSegFault/build/isolatedSegFault)

==14534== by 0x1147EA: std::vector, std::allocator > >::operator=(std::vector, std::allocator > > const&) (in /home/rufus/CLionProjects/isolatedSegFault/build/isolatedSegFault)

==14534== by 0x113CF9: open3d::geometry::PointCloud::operator=(open3d::geometry::PointCloud const&) (in /home/rufus/CLionProjects/isolatedSegFault/build/isolatedSegFault)
==14534== by 0x1133FF: main (in /home/rufus/CLionProjects/isolatedSegFault/build/isolatedSegFault)

==14534== Address 0x61da940 is 0 bytes after a block of size 112 alloc'd

==14534== at 0x4C3217F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)

==14534== by 0x12C358: allocate (new_allocator.h:111)

==14534== by 0x12C358: allocate (alloc_traits.h:436)

==14534== by 0x12C358: __allocate_guarded, (__gnu_cxx::_Lock_policy)2> > > (allocated_ptr.h:104)

==14534== by 0x12C358: __shared_count > (shared_ptr_base.h:635)

==14534== by 0x12C358: __shared_ptr > (shared_ptr_base.h:1295)

==14534== by 0x12C358: shared_ptr > (shared_ptr.h:344)

==14534== by 0x12C358: allocate_shared > (shared_ptr.h:691)

==14534== by 0x12C358: make_shared (shared_ptr.h:707)

==14534== by 0x12C358: open3d::geometry::PointCloud::VoxelDownSample(double) const (PointCloud.cpp:306)

==14534== by 0x1133DB: main (in /home/rufus/CLionProjects/isolatedSegFault/build/isolatedSegFault)

==14534==

==14534==

==14534== HEAP SUMMARY:

==14534== in use at exit: 8 bytes in 1 blocks

==14534== total heap usage: 19 allocs, 18 frees, 107,576 bytes allocated

==14534==

==14534== LEAK SUMMARY:

==14534== definitely lost: 0 bytes in 0 blocks

==14534== indirectly lost: 0 bytes in 0 blocks

==14534== possibly lost: 0 bytes in 0 blocks

==14534== still reachable: 8 bytes in 1 blocks

==14534== suppressed: 0 bytes in 0 blocks

==14534== Rerun with --leak-check=full to see details of leaked memory

==14534==

==14534== For counts of detected and suppressed errors, rerun with: -v

==14534== Use --track-origins=yes to see where uninitialised values come from

==14534== ERROR SUMMARY: 6 errors from 6 contexts (suppressed: 0 from 0)
```

- Operating system: Ubuntu 18.04
- Is this remote workstation?: no
- How did you install Open3D?: build from source (git clone https://github.com/intel-isl/Open3D)
- Compiler version (if built from source):gcc 7.5

I tried to change macros from Eigen and change compilers but nothing worked.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.