Page MenuHome

blend file suddenly started crashing immediately after loading attached file in ~90% of my attempts
Open, Confirmed, MediumPublic

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