UNC-Robotics / nigh

Concurrent exact nearest neighbor searching in robotics-relevant spaces, including Euclidean, SO(3), SE(3) and weighted combinations thereof
BSD 3-Clause "New" or "Revised" License
54 stars 12 forks source link

stack overflow #6

Closed CaeruleusAqua closed 9 months ago

CaeruleusAqua commented 9 months ago

Hello everyone,

I get a stack overflow when I have larger neighbourhoods.

There are currently 298838 objects in the nbh.

The problem seems to be that the visitor calls the traverse function recursively (I have 18000 function calls in my stack).


[Inlined] std::_Atomic_storage::load(memory_order) atomic:1112
unc::robotics::nigh::impl::LPRegion::distTo(const std::shared_ptr<…> &) region_lp.hpp:197
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Traversal::distToRegion(const std::shared_ptr<…> &, const unc::robotics::nigh::impl::Region<…> &) traversal_lp.hpp:150
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:84
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130

18000x

[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::impl::kdtree_batch::Traversal::traverse<…>(unc::robotics::nigh::impl::kdtree_batch::Nearest<…> &, const unc::robotics::nigh::metric::Space<…> &, const unc::robotics::nigh::impl::kdtree_batch::Node<…> *, unsigned int, const std::shared_ptr<…> &) traversal_lp.hpp:130
[Inlined] unc::robotics::nigh::impl::kdtree_batch::Nearest::operator()(const unc::robotics::nigh::impl::kdtree_batch::Node<…> *) nearest.hpp:87
unc::robotics::nigh::Nigh::nearest<…>(const std::shared_ptr<…> &) kdtree_batch.hpp:190
CaeruleusAqua commented 9 months ago

Sorry guys that was my fault ;-)