cnr-isti-vclab / PyMeshLab

The open source mesh processing python library
GNU General Public License v3.0
777 stars 62 forks source link

Colorize Curvature Apss filter crashes #50

Open Ainaz99 opened 3 years ago

Ainaz99 commented 3 years ago

Hi,

I'm trying to apply the colorize_curvature_apss filter with curvaturetype=K1, K2 on a sample mesh, but it crashes. This is the error I get:

*** Error in `python': double free or corruption (out): 0x000055f146d82bf0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777f5)[0x7fd94a9a27f5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8038a)[0x7fd94a9ab38a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fd94a9af58c]
/root/miniconda3/lib/python3.8/site-packages/pymeshlab/lib/plugins/libfilter_mls.so(_ZNSt6vectorIdSaIdEE17_M_default_appendEm+0xcf)[0x7fd9136bc0db]
/root/miniconda3/lib/python3.8/site-packages/pymeshlab/lib/plugins/libfilter_mls.so(_ZN3vcg9HistogramIdE8SetRangeEddid+0x6a)[0x7fd9136cbf78]
/root/miniconda3/lib/python3.8/site-packages/pymeshlab/lib/plugins/libfilter_mls.so(_ZN3vcg3tri4StatI6CMeshOE32ComputePerVertexQualityHistogramERS2_RNS_9HistogramIdEEbi+0x2a5)[0x7fd9136cc310]
/root/miniconda3/lib/python3.8/site-packages/pymeshlab/lib/plugins/libfilter_mls.so(_ZN9MlsPlugin11applyFilterEPK7QActionR12MeshDocumentRSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE8QVariantSt4lessISB_ESaISt4pairIKSB_SC_EEERjRK17RichParameterListPFbiPKcE+0xdb3)[0x7fd9136c242d]
/root/miniconda3/lib/python3.8/site-packages/pymeshlab/pmeshlab.cpython-38-x86_64-linux-gnu.so(+0x34ffc)[0x7fd949dfbffc]
/root/miniconda3/lib/python3.8/site-packages/pymeshlab/pmeshlab.cpython-38-x86_64-linux-gnu.so(+0x33488)[0x7fd949dfa488]
/root/miniconda3/lib/python3.8/site-packages/pymeshlab/pmeshlab.cpython-38-x86_64-linux-gnu.so(+0x1e28b)[0x7fd949de528b]
/root/miniconda3/lib/python3.8/site-packages/pymeshlab/pmeshlab.cpython-38-x86_64-linux-gnu.so(+0x14019)[0x7fd949ddb019]
python(PyCFunction_Call+0x56)[0x55f1455fba76]
python(_PyObject_MakeTpCall+0x22f)[0x55f1455b950f]
python(+0x18bca1)[0x55f145607ca1]
python(+0x100de6)[0x55f14557cde6]
python(_PyFunction_Vectorcall+0x10b)[0x55f14560756b]
python(+0x100689)[0x55f14557c689]
python(_PyEval_EvalCodeWithName+0x2d2)[0x55f1456066a2]
python(PyEval_EvalCodeEx+0x44)[0x55f145607454]
python(PyEval_EvalCode+0x1c)[0x55f145695bbc]
python(+0x219c64)[0x55f145695c64]
python(+0x24bd14)[0x55f1456c7d14]
python(PyRun_FileExFlags+0xa1)[0x55f145590625]
python(PyRun_SimpleFileExFlags+0x3b4)[0x55f145590a0a]
python(+0x1158cf)[0x55f1455918cf]
python(Py_BytesMain+0x39)[0x55f1456ca829]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fd94a94b840]
python(+0x1deb33)[0x55f14565ab33]
======= Memory map: ========
55f14547c000-55f1454db000 r--p 00000000 08:01 10630130                   /root/miniconda3/bin/python3.8
55f1454db000-55f1456cb000 r-xp 0005f000 08:01 10630130                   /root/miniconda3/bin/python3.8
55f1456cb000-55f1457b1000 r--p 0024f000 08:01 10630130                   /root/miniconda3/bin/python3.8
55f1457b1000-55f1457b6000 r--p 00334000 08:01 10630130                   /root/miniconda3/bin/python3.8
55f1457b6000-55f1457ee000 rw-p 00339000 08:01 10630130                   /root/miniconda3/bin/python3.8

Here's the link to the mesh: https://drive.google.com/file/d/1x0Ui0_zpOO8abvuzt3_jb3VA-sCNUjP7/view?usp=sharing I would really appreciate it if you can help me fix this problem. Thanks in advance.

alemuntoni commented 3 years ago

Thanks for reporting this. The issue occurs also in MeshLab, and it is because the k1/k2 curvature has a NaN value on some vertices. I'll investigate on why this is happening and how to prevent it.