Page MenuHome

Crash on objdata.update()
Closed, ArchivedPublic

Description

Operating system: Debian 10
Graphics card: geforce 970

Broken: 2.81 alpha, a571ff2c16c6 (from checkout last week)
Worked: Unsure.

Malloc fail and segfault...
...when calling object_data.update()
(I'm almost certainly doing it wrong, since it's the first time I'm messing with this type of editing).

Malloc returns null: len=18446744073709551584 in mesh_render_data_create_ex, total 19430948

Load attached blend (if I remember to attach it), and execute script.

crash.txt:

Blender 2.81 (sub 1), Commit date: 2019-08-09 18:48, Hash a571ff2c16c6

bpy.data.window_managers["WinMan"].(null) = True # Property
Saved "crashmesh.blend" # Info

backtrace

/home/jaggz/pubprj/blender/bin/blender(BLI_system_backtrace+0x20) [0x564c871ff770]
/home/jaggz/pubprj/blender/bin/blender(+0x120f5a8) [0x564c86fe85a8]
/lib/x86_64-linux-gnu/libc.so.6(+0x37840) [0x7fb67774f840]
/home/jaggz/pubprj/blender/bin/blender(BKE_mesh_calc_edges+0x9d) [0x564c870b1cad]
/home/jaggz/pubprj/blender/bin/blender(ED_mesh_update+0xb1) [0x564c877e3f31]
/home/jaggz/pubprj/blender/bin/blender(RNA_function_call+0x12) [0x564c872aefb2]
/home/jaggz/pubprj/blender/bin/blender(+0x14a0542) [0x564c87279542]
/usr/lib/x86_64-linux-gnu/libpython3.7m.so.1.0(_PyObject_FastCallKeywords+0xd3) [0x7fb681ddd043]
/usr/lib/x86_64-linux-gnu/libpython3.7m.so.1.0(_PyEval_EvalFrameDefault+0x2f33) [0x7fb681bd8d53]
/usr/lib/x86_64-linux-gnu/libpython3.7m.so.1.0(_PyEval_EvalCodeWithName+0x996) [0x7fb681d051e6]
/usr/lib/x86_64-linux-gnu/libpython3.7m.so.1.0(PyEval_EvalCodeEx+0x3e) [0x7fb681d0546e]
/usr/lib/x86_64-linux-gnu/libpython3.7m.so.1.0(PyEval_EvalCode+0x1b) [0x7fb681d0623b]
/home/jaggz/pubprj/blender/bin/blender(+0x14971a7) [0x564c872701a7]
/home/jaggz/pubprj/blender/bin/blender(+0x1cc532e) [0x564c87a9e32e]
/home/jaggz/pubprj/blender/bin/blender(+0x15cedd2) [0x564c873a7dd2]
/home/jaggz/pubprj/blender/bin/blender(+0x15d152d) [0x564c873aa52d]
/home/jaggz/pubprj/blender/bin/blender(+0x15d1e40) [0x564c873aae40]
/home/jaggz/pubprj/blender/bin/blender(+0x15d3bdc) [0x564c873acbdc]
/home/jaggz/pubprj/blender/bin/blender(wm_event_do_handlers+0x762) [0x564c873ad6b2]
/home/jaggz/pubprj/blender/bin/blender(WM_main+0x20) [0x564c873a30f0]
/home/jaggz/pubprj/blender/bin/blender(main+0x310) [0x564c86fabdd0]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xeb) [0x7fb67773c09b]
/home/jaggz/pubprj/blender/bin/blender(_start+0x2a) [0x564c86fe4f2a]

Event Timeline

Philipp Oeser (lichtwerk) changed the task status from Unknown Status to Unknown Status.Sep 9 2019, 1:47 PM
Philipp Oeser (lichtwerk) claimed this task.

That file already has a corrupt mesh to start with.
You can check by running bpy.context.scene.objects['Cube'].data.validate(verbose=True) on the existing mesh...

ERROR (bke.mesh): /blender/blenkernel/intern/mesh_validate.c:301 BKE_mesh_validate_arrays: 	Logical error, 1 polygons and 0 edges
ERROR (bke.mesh): /blender/blenkernel/intern/mesh_validate.c:325 BKE_mesh_validate_arrays: 	Vertex 0: has zero normal, assuming Z-up normal
ERROR (bke.mesh): /blender/blenkernel/intern/mesh_validate.c:325 BKE_mesh_validate_arrays: 	Vertex 1: has zero normal, assuming Z-up normal
ERROR (bke.mesh): /blender/blenkernel/intern/mesh_validate.c:325 BKE_mesh_validate_arrays: 	Vertex 2: has zero normal, assuming Z-up normal
ERROR (bke.mesh): /blender/blenkernel/intern/mesh_validate.c:555 BKE_mesh_validate_arrays: 	Poly 0 is invalid (loopstart: 0, totloop: 0)

If that would be clean (you would be starting from a new empty mesh), you are much better off using https://docs.blender.org/api/master/bpy.types.Mesh.html?#bpy.types.Mesh.from_pydata (otherwise you have to take care of edges, loops...)

But to sum it up: this is not a bug, suggest further reading:
https://blender.stackexchange.com/questions/2407/how-to-create-a-mesh-programmatically-without-bmesh
https://devtalk.blender.org/t/alternative-in-2-80-to-create-meshes-from-python-using-the-tessfaces-api/7445

There is also a template in blender even for this
Text Editor > Templates > Python > Addon Add Object