Page MenuHome

Remove Doubles produces holes in mesh
Closed, ResolvedPublic

Description

System Information
Mac OSX 10.13.4, AMD Radeon R9 M370X 2048 MB
Intel Iris Pro 1536 MB (But I've seen this error on other OSs too).

Blender Version
Broken: 2.79b f4dc9f9
Worked: 2.79 5bd8ac9

When I "remove doubles" on an imported OBJ file, it inappropriately removes some faces, leaving holes in the mesh. This does not happen on older versions of blender (2.79b vs. 2.79)

  1. Load the attached OBJ file.
  1. Switch to edit mode.
  1. With all vertices selected, click on Remove Doubles in the Tools shelf.
  1. The mesh now has holes.

Revisions and Commits

Event Timeline

Bastien Montagne (mont29) lowered the priority of this task from 90 to Normal.

Not sure whether @Campbell Barton (campbellbarton) wants to have a look here… That mesh has terrible geometry I think, but on the other hands remove doubles code generates a lot of asserts like that:

/usr/lib/x86_64-linux-gnu/libasan.so.4(+0x54741) [0x7f76578d4741]
./bin/blender(BLI_system_backtrace+0x9b) [0x55fff2da0a92]
./bin/blender(+0x536311a) [0x55fff1b5b11a]
./bin/blender(bmo_find_doubles_exec+0x45) [0x55fff1b5b57e]
./bin/blender(BMO_op_exec+0x112) [0x55fff17f0040]
./bin/blender(+0x40c9505) [0x55fff08c1505]
./bin/blender(+0x34b1c1b) [0x55ffefca9c1b]
./bin/blender(+0x34b2bd1) [0x55ffefcaabd1]
./bin/blender(WM_operator_name_call_ptr+0x116) [0x55ffefcaae32]
./bin/blender(+0x3da31f3) [0x55fff059b1f3]
./bin/blender(+0x3deca92) [0x55fff05e4a92]
./bin/blender(+0x34ac574) [0x55ffefca4574]
./bin/blender(+0x34b79ff) [0x55ffefcaf9ff]
./bin/blender(+0x34b7ffe) [0x55ffefcafffe]
./bin/blender(wm_event_do_handlers+0xa66) [0x55ffefcb27af]
./bin/blender(WM_main+0x30) [0x55ffefc98c55]
./bin/blender(main+0xb32) [0x55ffefc8e4f6]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7f764e268b17]
./bin/blender(_start+0x2a) [0x55ffefc8d78a]
BLI_assert failed: /home/i74700deb64/blender/__work__/src/source/blender/bmesh/operators/bmo_removedoubles.c:622, bmesh_find_doubles_common(), at '(((duplicates[duplicates[i]]) == (-1)) || ((duplicates[duplicates[i]]) == (duplicates[i])))'