Skip to Content.
Sympa Menu

cgal-discuss - Re: [cgal-discuss] ARAP_parameterizer_3/Eigen crash when launched in parallel

Subject: CGAL users discussion list

List archive

Re: [cgal-discuss] ARAP_parameterizer_3/Eigen crash when launched in parallel


Chronological Thread 
  • From: Sebastien Tourneux <>
  • To:
  • Subject: Re: [cgal-discuss] ARAP_parameterizer_3/Eigen crash when launched in parallel
  • Date: Thu, 2 Dec 2021 16:20:43 +0100
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
  • Ironport-data: A9a23:fbZSYq/h8YFxSma6VWN1DrUDOXyTJUtcMsCJ2f8bfWQNrUpw3jZWmmYcCDiOPffea2Ggf4hxbdvgo0oG6pTczNNhG3M5pCpnJ55ogZqcVI7Bdi8cHAvLc5adFBo/hykmh2ipwPkcFhcwnT/wdOi+xZVA/fvQHOOlUraeYnoZqTJMEU/Ntzozw4bVvaYz2bBVMyvV0T/Di5W31G2Ng1aYAUpIg063ky6Didyp0N8uUvPSUtgQ1LPWvyF94JvyvshdJVOgKmVfNrbSq+ouUNiEEm3lExcFUrtJk57ldwgPUueUNxWAzHFRXsBOgDAY/3d0i/thcqNBLx4G1l1lnPgpoDlJnYesThozOKDRiMwXThceGCZ7VUFD0OCWfSPi4ZT7I0ruKCGwnao0XSnaJ7Yw8el+BSRC9OcTNSsWRguSgvq/hrO9UOhlwMo5RPQHlqsL4iQ4i2nNVKN+B8jXGfCSo4JMh2JowJ1aQqPgZu8NMGI6MEuEOkUQakN/5IkWguLtg2mmNTdFphSeoq9f3oQa9yQpuJCFDTYfUoXiqQRpckekSqbu4WG8BwFDctaCx3yO9XfEairn9c/kcNp6KVF63qcCbJ6vKqg7AgAYE1C8pJFVT2agDslHJRV8FjUG9MAPGY/CcjU5dxelrjiPuRt0tx94ewElwFnl95c4KDp1yoTJovCtpTDmWAILqeQW62K0
  • Ironport-hdrordr: A9a23:lPNlzqOnWr0qO8BcTrSjsMiBIKoaSvp037BF7SxMoHBuH/Bw6frBoB1z73ad4wr5M0tOpTnvAsO9fU8=
  • Ironport-phdr: A9a23:eq8HbRWeOAH5L6iGQ5ESoNnfv8PV8KzPVTF92vMcY1JmTK2v8tzYMVDF4r011RmVB9ydta8P1LGempujcFRI2YyGvnEGfc4EfD4+ouJSoTYdBtWYA1bwNv/gYn9yNs1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgppPOT1HZPZg9iq2+yo9JDffRhEiCC8bL5yIxm7rwvcvdQKjIV/Lao81gHHqWZSdeRMwmNoK1OTnxLi6cq14ZVu7Sdete8/+sBZSan1cLg2QrJeDDQ9LmA6/9brugXZTQuO/XQTTGMbmQdVDgff7RH6WpDxsjbmtud4xSKXM9H6QawyVD+/6apgVR3mhzodNzMh7W/ZlMJwgqJYrhyvqRNwzIzbb52aOvdlYqPQfskXSXZdUstfVSFMBJ63YYsVD+oGOOZVt5TzqEUVohSkHgmsGOLvxSFOhnTrw6M61PkhERvA3AM+AtIPv2nfodLuNKcOVuC10bPIzTPdYPNL1jbw85PHcg0vof2WQb1wds/RxFApGgjYgVqetZbrMCmJ1uQRrWeb9exgWPqyh2Aotgx/rSSiy8Uyh4TLh48bylHJ+yp2zYs1IdC0Vk92b964HJZStSyXOIV4TM0iTm9muCs317MItJC/cSYEzpks2h3Ra+SffoSW/x7uWvydLSp4iX57Yr6zmha//VK9xuD4VsS51ktBoDBfndnWrH8N0gTe6siZRft5+UeswSiP1wXK5uFBLkE4iLDXJIU8wr4+jJYcrUPDHirulEX3iq+ZaFkk9/C25+j6bLjqvIKQOo9qhg3kL6gjmtazDfk8PwUOR2Sb/P6z1Lzn/U33WrVKifg2n7HCsJDGIsQbu7S5AwlL3YY+5BeyFCyp0MkWnXUdMF1FfxeHg5DzO17SOPD4Eeu/g1O0nTh3yPDJJLnhDozQIXjCi7fuYat961VHyAco1tBe55dUCqkbL/7pW0/xssbYDh4jPACuzebnEoY16oRLUm2GBuqVMbjZrESTzuMpOeiFIoEP6xjnLP1w3PPkhGQlmFIbNZWuwIERZW2oVqB9P0KEe3zhn8cpG3oE+AE5Sbq52xW5TTdPaiPqDOoH7TYhBdf+ZW8ibp6oxbmRhWGxA5MQbWdDWAjk+ZjAfZiKHfwLbXDLSieEujYZW/6qTIpzjXmT

Also, I would like to add that `LSCM_parameterizer_3` works fine in parallel

On 12/2/21 3:57 PM, Sebastien Tourneux wrote:
Hello,

I use ARAP_parameterizer_3 to parametrize a model made of several disconnected parts. I want to parametrize independently each part. When each part is processed sequentially, everything is fine, but when processed in parallel, I got a free/malloc crash (see backtrace below) from an `Eigen::SparseLU::factorize` call from `ARAP_parameterizer_3::parameterize`. I use TBB to handle the parallelization.

I am not sure if it is an actual issue or if ARAP_parameterizer_3 (or Eigen factorize) is not supposed to be launched in parallel. Looking very briefly at the code, I found `output_uvmap` that seems to write to an hardcoded file (I believe), could it be the cause ?

I am using CGAL_VERSION 5.3 (CGAL_GIT_HASH caacd806dc55c61cc68adaad99f2240f00493b29) on Debian 10.

Thanks in advance for you help,

Sébastien Tourneux


Backtrace :

malloc(): mismatching next->prev_size (unsorted)
free(): invalid size
munmap_chunk(): invalid pointer
munmap_chunk(): invalid pointermunmap_chunk(): invalid pointer

double free or corruption (out)
corrupted size vs. prev_size while consolidating
malloc(): invalid next size (unsorted)
munmap_chunk(): invalid pointer
munmap_chunk(): invalid pointer
munmap_chunk(): invalid pointer
free(): corrupted unsorted chunks
double free or corruption (!prev)

Thread 128 "exec" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff217f7700 (LWP 3382513)]
0x00007fffddd46125 in Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >::factorize(Eigen::SparseMatrix<double, 0, int> const&) () from /path/to/lib/libCgalModel.so
#0  0x00007fffddd46125 in Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> >::factorize(Eigen::SparseMatrix<double, 0, int> const&) () at /path/to/lib/libCgalModel.so
#1  0x00007fffde22cb2c in CGAL::Eigen_solver_traits<Eigen::SparseLU<Eigen::SparseMatrix<double, 0, int>, Eigen::COLAMDOrdering<int> > >::linear_solver(CGAL::Eigen_sparse_matrix<double> const&, CGAL::Eigen_vector<double, -1> const&, CGAL::Eigen_vector<double, -1>&, double&) ()
    at /path/to/lib/libCgalModel.so
#2  0x00007fffde216a95 in CGAL::Surface_mesh_parameterization::Error_code CGAL::Surface_mesh_parameterization::ARAP_parameterizer_3<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >, CGAL::Surface_mesh_parameterization::Two_vertices_parameterizer_3<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >, CGAL::Default>::update_solution<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, CGAL::Point_2<CGAL::Simple_cartesian<double> > >, CGAL::internal::Dynamic<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, int> >, CGAL::internal::Dynamic<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, bool> > >(CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > const&, boost::unordered::unordered_set<CGAL::SM_Vertex_index, boost::hash<CGAL::SM_Vertex_index>, std::equal_to<CGAL::SM_Vertex_index>, std::allocator<CGAL::SM_Vertex_index> > const&, boost::associative_property_map<CGAL::Unique_hash_map<CGAL::SM_Halfedge_index, double, boost::hash<CGAL::SM_Halfedge_index>, std::allocator<double> > >, std::vector<CGAL::Point_2<CGAL::Simple_cartesian<double> >, std::allocator<CGAL::Point_2<CGAL::Simple_cartesian<double> > > > const&, boost::associative_property_map<CGAL::Unique_hash_map<CGAL::SM_Halfedge_index, std::pair<int, int>, boost::hash<CGAL::SM_Halfedge_index>, std::allocator<std::pair<int, int> > > >, boost::associative_property_map<CGAL::Unique_hash_map<CGAL::SM_Face_index, std::pair<double, double>, boost::hash<CGAL::SM_Face_index>, std::allocator<std::pair<double, double> > > >, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, CGAL::Point_2<CGAL::Simple_cartesian<double> > >, CGAL::internal::Dynamic<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, int> >, CGAL::internal::Dynamic<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, bool> >, CGAL::Eigen_sparse_matrix<double> const&) ()
    at /path/to/lib/libCgalModel.so
#3  0x00007fffde2139b5 in CGAL::Surface_mesh_parameterization::Error_code CGAL::Surface_mesh_parameterization::ARAP_parameterizer_3<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >, CGAL::Surface_mesh_parameterization::Two_vertices_parameterizer_3<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >, CGAL::Default>::parameterize<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, CGAL::Point_2<CGAL::Simple_cartesian<double> > >, CGAL::internal::Dynamic<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, int> >, CGAL::internal::Dynamic<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, bool> > >(CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >&, CGAL::SM_Halfedge_index, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, CGAL::Point_2<CGAL::Simple_cartesian<double> > >, CGAL::internal::Dynamic<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, int> >, CGAL::internal::Dynamic<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, bool> >) () at /path/to/lib/libCgalModel.so
#4  0x00007fffde210c7d in CGAL::Surface_mesh_parameterization::Error_code CGAL::Surface_mesh_parameterization::parameterize<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >, CGAL::Surface_mesh_parameterization::ARAP_parameterizer_3<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >, CGAL::Surface_mesh_parameterization::Two_vertices_parameterizer_3<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >, CGAL::Default>, CGAL::SM_Halfedge_index, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, CGAL::Point_2<CGAL::Simple_cartesian<double> > > >(CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >&, CGAL::Surface_mesh_parameterization::ARAP_parameterizer_3<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >, CGAL::Surface_mesh_parameterization::Two_vertices_parameterizer_3<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > > >, CGAL::Default>, CGAL::SM_Halfedge_index, CGAL::Surface_mesh<CGAL::Point_3<CGAL::Simple_cartesian<double> > >::Property_map<CGAL::SM_Vertex_index, CGAL::Point_2<CGAL::Simple_cartesian<double> > >) () at /path/to/lib/libCgalModel.so



--
Sebastien Tourneux
Buf Compagnie - R&D




Archive powered by MHonArc 2.6.19+.

Top of Page