Page MenuHome

blend file suddenly started crashing immediately after loading attached file in ~90% of my attempts
Open, Needs Information from UserPublic

Description

System Information
Operating system: Linux-4.13.10-041310-generic-x86_64-with-debian-stretch-sid 64 Bits
Graphics card: GeForce GTX 1050/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 390.67

Blender Version
Broken: version: 2.80 (sub 55), branch: blender2.7, commit date: 2019-04-11 17:43, hash: rBd1cda823e0a8

Short description of error
The linked blend file suddenly started crashing immediately after loading in ~90% of my attempts.
Very reminiscent of a bug I reported in December, which had been resolved. And again, the data transfer(custom normals) may be involved.

Exact steps for others to reproduce the error

  • load blend file 10 times, it should crash almost always
  • there may be better chances it loads, when loading without UI (and from solid shading), I'm not sure

Details

Type
Bug

Event Timeline

It seems v_curr is pointing somewhere it shouldn't.

>	blender.exe!add_newell_cross_v3_v3v3(float * n, const float * v_prev, const float * v_curr) Zeile 868	C
 	blender.exe!bm_face_calc_poly_normal(const BMFace * f, float * n) Zeile 64	C
 	blender.exe!BM_face_calc_normal(const BMFace * f, float * r_no) Zeile 830	C
 	blender.exe!BM_face_is_normal_valid(const BMFace * f) Zeile 2483	C
 	blender.exe!BM_loop_interp_from_face(BMesh * bm, BMLoop * l_dst, const BMFace * f_src, const bool do_vertex, const bool do_multires) Zeile 696	C
 	blender.exe!bev_create_ngon(BMesh * bm, BMVert * * vert_arr, const int totv, BMFace * * face_arr, BMFace * facerep, BMEdge * * edge_arr, int mat_nr, bool do_interp) Zeile 551	C
 	blender.exe!bev_create_quad_ex(BMesh * bm, BMVert * v1, BMVert * v2, BMVert * v3, BMVert * v4, BMFace * f1, BMFace * f2, BMFace * f3, BMFace * f4, BMEdge * e1, BMEdge * e2, BMEdge * e3, BMEdge * e4, int mat_nr) Zeile 595	C
 	blender.exe!bevel_build_rings(BevelParams * bp, BMesh * bm, BevVert * bv) Zeile 4487	C
 	blender.exe!build_vmesh(BevelParams * bp, BMesh * bm, BevVert * bv) Zeile 4820	C
 	blender.exe!BM_mesh_bevel(BMesh * bm, const float offset, const int offset_type, const float segments, const float profile, const bool vertex_only, const bool use_weights, const bool limit_offset, const MDeformVert * dvert, const int vertex_group, const int mat, const bool loop_slide, const bool mark_seam, const bool mark_sharp, const bool harden_normals, const int face_strength_mode, const int miter_outer, const int miter_inner, const float spread, const float smoothresh) Zeile 6449	C
 	blender.exe!applyModifier(ModifierData * md, const ModifierEvalContext * ctx, Mesh * mesh) Zeile 191	C
 	blender.exe!modwrap_applyModifier(ModifierData * md, const ModifierEvalContext * ctx, Mesh * me) Zeile 830	C
 	blender.exe!mesh_calc_modifiers(Depsgraph * depsgraph, Scene * scene, Object * ob, int useDeform, const bool need_mapping, const CustomData_MeshMasks * dataMask, const int index, const bool use_cache, Mesh * * r_deform, Mesh * * r_final) Zeile 1379	C
 	blender.exe!mesh_build_data(Depsgraph * depsgraph, Scene * scene, Object * ob, const CustomData_MeshMasks * dataMask, const bool need_mapping) Zeile 1929	C
 	blender.exe!makeDerivedMesh(Depsgraph * depsgraph, Scene * scene, Object * ob, BMEditMesh * em, const CustomData_MeshMasks * dataMask) Zeile 2034	C
 	blender.exe!BKE_object_handle_data_update(Depsgraph * depsgraph, Scene * scene, Object * ob) Zeile 186	C
 	blender.exe!BKE_object_eval_uber_data(Depsgraph * depsgraph, Scene * scene, Object * ob) Zeile 352	C
 	[Externer Code]	
 	blender.exe!DEG::deg_task_run_func(TaskPool * pool, void * taskdata, int thread_id) Zeile 91	C++
 	blender.exe!handle_local_queue(TaskThreadLocalStorage * tls, const int thread_id) Zeile 421	C
 	blender.exe!task_scheduler_thread_run(void * thread_p) Zeile 452	C
 	[Externer Code]	
 	blender.exe!invoke_thread_procedure(unsigned int(*)(void *) procedure, void * const context) Zeile 92	C++
 	blender.exe!thread_start<unsigned int (__cdecl*)(void * __ptr64)>(void * const parameter) Zeile 115	C++
 	[Externer Code]
Sebastian Parborg (zeddb) triaged this task as Confirmed, Medium priority.

@MACHIN3 (MACHIN3) it is ok to upload big files. (It is not uncommon that people upload >600MB "minimal" .blend files here :P)

Anyways,

I'm getting this assert when loading the file:

BMESH_ASSERT failed: blender/source/blender/bmesh/intern/bmesh_core.c, bmesh_elem_check(), 735 at 'err == 0'

The error is: IS_FACE_NULL_VERT
So this means that there is a loop that doesn't have a vertex in it.

@Bastien Montagne (mont29) any ideas?

Bastien Montagne (mont29) removed Bastien Montagne (mont29) as the assignee of this task.

Error happens in validation of BMesh in Bevel code, so I guess that’s for @Howard Trickey (howardt) to investigate.

This happens at the very beginning of the bevel modifier's applyModifier function, before bevel actually does anything, when it is trying to do BKE_mesh_to_bmesh_ex() to convert the input into a BMesh. So I don't think this has anything to do with Bevel, but rather some kind of corruption in the input file or something gone wrong in the generic mesh to bmesh conversion procedure. I can look into this further but not right away. Is there someone better than me to look at this?

p.s., I realize that the stack trace in the intial report is during the heart of bevel. My crash happens much earlier, as the previous note said. Perhaps because it is a Debug build? My stack trace:

Thread 20 "blender" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffadbfd700 (LWP 63173)]
GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 0x00007fffe98adfcf in
GI_raise (sig=sig@entry=6)

at ../sysdeps/unix/sysv/linux/raise.c:51

#1 0x00007fffe98af3fa in __GI_abort () at abort.c:89
#2 0x000055555842001b in bmesh_elem_check

(element=0x7fff883660a0, htype=8 '\b')
at /usr/local/google/home/trickey/src/blender-git/blender/source/blender/bmesh/intern/bmesh_core.c:735

#3 0x000055555841f823 in BM_face_create

(bm=0x7fffa8888908, verts=0x7fffadbfb620, edges=0x7fffadbfb5f0, len=4, f_example=0x0, create_flag=BM_CREATE_SKIP_CD)
at /usr/local/google/home/trickey/src/blender-git/blender/source/blender/bmesh/intern/bmesh_core.c:487

#4 0x00005555584a6b30 in bm_face_create_from_mpoly

(mp=0x7fffa652b82c, ml=0x7fffa6529088, bm=0x7fffa8888908, vtable=0x7fffa8865d08, etable=0x7fff88008a08)
at /usr/local/google/home/trickey/src/blender-git/blender/source/blender/bmesh/intern/bmesh_mesh_conv.c:167

#5 0x00005555584a7bbe in BM_mesh_bm_from_me

(bm=0x7fffa8888908, me=0x7fffa8866408, params=0x7fffadbfb920)
at /usr/local/google/home/trickey/src/blender-git/blender/source/blender/bmesh/intern/bmesh_mesh_conv.c:383

#6 0x00005555589c52c6 in BKE_mesh_to_bmesh_ex

(me=0x7fffa8866408, create_params=0x7fffadbfb954, convert_params=0x7fffadbfb920)

--Type <RET> for more, q to quit, c to continue without paging--

at /usr/local/google/home/trickey/src/blender-git/blender/source/blender/blenkernel/intern/mesh.c:699

#7 0x00005555583443b7 in applyModifier

(md=0x7fffa64ce508, ctx=0x7fffadbfbf80, mesh=0x7fffa8866408)
at /usr/local/google/home/trickey/src/blender-git/blender/source/blender/modifiers/intern/MOD_bevel.c:111

#8 0x00005555589f28c4 in modwrap_applyModifier

(md=0x7fffa64ce508, ctx=0x7fffadbfbf80, me=0x7fffa8866408)
at /usr/local/google/home/trickey/src/blender-git/blender/source/blender/blenkernel/intern/modifier.c:829

#9 0x000055555888b54e in mesh_calc_modifiers

(depsgraph=0x7fffcb824b08, scene=0x7fffaf8e7008, ob=0x7fff8f58e808, useDeform=1, need_mapping=false, dataMask=0x7fffadbfc100, index=-1, use_cache=true, r_deform=0x7fff8f58ed60, r_final=0x7fff8f58ed58)
at /usr/local/google/home/trickey/src/blender-git/blender/source/blender/blenkernel/intern/DerivedMesh.c:1341

#10 0x000055555888d970 in mesh_build_data

(depsgraph=0x7fffcb824b08, scene=0x7fffaf8e7008, ob=0x7fff8f58e808, dataMask=0x7fffadbfc100, need_mapping=false)
at /usr/local/google/home/trickey/src/blender-git/blender/source/blender/blenkernel/intern/DerivedMesh.c:1925

#11 0x000055555888ddd6 in makeDerivedMesh

(depsgraph=0x7fffcb824b08, scene=0x7fffaf8e7008, ob=0x7fff8f58e808, em=0x0, dataMask=0x7fffadbfc160)

--Type <RET> for more, q to quit, c to continue without paging--

at /usr/local/google/home/trickey/src/blender-git/blender/source/blender/blenkernel/intern/DerivedMesh.c:2032

#12 0x0000555558a2fd9b in BKE_object_handle_data_update

(depsgraph=0x7fffcb824b08, scene=0x7fffaf8e7008, ob=0x7fff8f58e808)
at /usr/local/google/home/trickey/src/blender-git/blender/source/blender/blenkernel/intern/object_update.c:184

#13 0x0000555558a30651 in BKE_object_eval_uber_data

(depsgraph=0x7fffcb824b08, scene=0x7fffaf8e7008, ob=0x7fff8f58e808)
at /usr/local/google/home/trickey/src/blender-git/blender/source/blender/blenkernel/intern/object_update.c:353

#14 0x0000555558e428f0 in std::invoke_impl<void, void (*&)(Depsgraph*, Scene*, Object*), Depsgraph*, Scene*&, Object*&>(std::invoke_other, void (*&)(Depsgraph*, Scene*, Object*), Depsgraph*&&, Scene*&, Object*&) (__f=

@0x7fffa17154a0: 0x555558a305a1 <BKE_object_eval_uber_data>, __args#0=@0x7fffadbfc370: 0x7fffcb824b08, __args#1=@0x7fffa17154b0: 0x7fffaf8e7008, __args#2=@0x7fffa17154a8: 0x7fff8f58e808) at /usr/include/c++/7/bits/invoke.h:60

#15 0x0000555558e4147a in std::invoke<void (*&)(Depsgraph*, Scene*, Object*), Depsgraph*, Scene*&, Object*&>(void (*&)(Depsgraph*, Scene*, Object*), Depsgraph*&&, Scene*&, Object*&) (fn=

@0x7fffa17154a0: 0x555558a305a1 <BKE_object_eval_uber_data>, __args#0=@0x7fffadbfc370: 0x7fffcb824b08, __args#1=@0x7fffa17154b0: 0x7fffaf8e7008, __args#2=@0x7fffa17154a8: 0x7fff8f58e808) at /usr/include/c++/7/bits/invoke.h:95

#16 0x0000555558e3ff46 in std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)>::__call<void, Depsgraph*&&, 0ul, 1ul, 2ul>(--Type <RET> for more, q to quit, c to continue without paging--q
Quit

Bastien Montagne (mont29) lowered the priority of this task from Confirmed, Medium to Needs Information from User.Tue, Sep 17, 4:48 PM

Erf, finally took some time to look at that one, issue here is that the mesh (maybe several, but at least one, Cylinder.031) is invalid. One can easily check that by appending the mesh itself (not its object), and then running bpy.data.meshes["Cylinder.031"].validate(verbose=True) from the py console, and checking the error messages in the regular system console:

ERROR (bke.mesh): /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/mesh_validate.c:589 BKE_mesh_validate_arrays: 	Loop 14 has invalid vert reference (8192)
ERROR (bke.mesh): /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/mesh_validate.c:733 BKE_mesh_validate_arrays: 	Loop 12 is unused.
ERROR (bke.mesh): /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/mesh_validate.c:733 BKE_mesh_validate_arrays: 	Loop 13 is unused.
ERROR (bke.mesh): /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/mesh_validate.c:733 BKE_mesh_validate_arrays: 	Loop 14 is unused.
ERROR (bke.mesh): /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/mesh_validate.c:733 BKE_mesh_validate_arrays: 	Loop 15 is unused.

So unless @MACHIN3 (MACHIN3) can provide us a way to reproduce such corruption in the mesh, am afraid we cannot do anything here.