Page MenuHome

Ivy Generator crash
Closed, ResolvedPublic

Description

System Information
windows 10 nvidia gtx970

Blender Version
Broken: (v2.79)

Short description of error
when adjusting Maximum Time blender crashes.

Event Timeline

Sergey Sharybin (sergey) lowered the priority of this task from 90 to 30.Dec 18 2017, 10:48 AM

Please attach exact steps reproducing the error.

Vuk Gardašević (lijenstina) changed the task status from Unknown Status to Unknown Status.Dec 25 2017, 7:21 PM

More than a week passed without a reply.

Due to the tracker policy, archiving until the required additional information / data is provided.

Philipp Oeser (lichtwerk) raised the priority of this task from 30 to 50.Dec 28 2017, 4:17 PM

I can reproduce a crash:

  • enable Ivy addon
  • shift+A --> Curve --> Add Ivy To Mesh
  • F6 redo
  • use either "Add New Ivy" or "Add New Default Ivy" operators
  • crash

this only happens on F6 redo (not T-Region last operator redo thingie)

Ivy operator has another layout.operator in its draw() which seems problematic as op is freed (see backtrace)

Not sure if this can be worked around from Ivy or if this needs to be fixed in UI code...

backtrace:

Thread 1 (Thread 0x7ffff7fa6380 (LWP 18197)):
#0  0x00007ffff3e3f02e in arena_dalloc_bin_locked_impl.constprop () from /lib64/libjemalloc.so.2
No symbol table info available.
#1  0x00007ffff3e661d8 in je_tcache_bin_flush_small () from /lib64/libjemalloc.so.2
No symbol table info available.
#2  0x00007ffff3e2ce51 in free () from /lib64/libjemalloc.so.2
No symbol table info available.
#3  0x0000000003021d5e in MEM_lockfree_freeN (vmemh=0x7fffb1551ec8) at /blender/intern/guardedalloc/intern/mallocn_lockfree_impl.c:164
        memh = 0x7fffb1551ec0
        len = 168
#4  0x0000000001c27206 in WM_operator_free (op=0x7fffb1551ec8) at /blender/source/blender/windowmanager/intern/wm.c:107
No locals.
#5  0x0000000001c27428 in wm_operator_register (C=0x7fffedc40d98, op=0x7fffb1551ec8) at /blender/source/blender/windowmanager/intern/wm.c:175
        op_prev = 0x7fffb5bc7288
        wm = 0x7fffed19db08
        tot = 161
#6  0x0000000001c48f66 in wm_block_redo_cb (C=0x7fffedc40d98, arg_op=0x7fffb1551ec8, UNUSED_arg_event=-1) at /blender/source/blender/windowmanager/intern/wm_operators.c:1368
        op = 0x7fffb1551ec8
#7  0x0000000001fa1446 in ui_apply_but_funcs_after (C=0x7fffedc40d98) at /blender/source/blender/editors/interface/interface_handlers.c:818
        afterf = 0x7fffc84de1c8
        after = {next = 0x0, prev = 0x0, func = 0x0, func_arg1 = 0x0, func_arg2 = 0x0, funcN = 0x0, func_argN = 0x0, rename_func = 0x0, rename_arg1 = 0x0, rename_orig = 0x0, handle_func = 0x1c48efe <wm_block_redo_cb>, handle_func_arg = 0x7fffb1551ec8, retval = -1, butm_func = 0x0, butm_func_arg = 0x0, a2 = 0, popup_op = 0x0, optype = 0x7fffb591c6c8, opcontext = 1, opptr = 0x7fffb5bd00c8, rnapoin = {id = {data = 0x0}, type = 0x0, data = 0x0}, rnaprop = 0x0, context = 0x0, undostr = '\000' <repeats 63 times>}
        opptr = {id = {data = 0x0}, type = 0x7fffb591be08, data = 0x0}
        funcs = {first = 0x0, last = 0x0}
#8  0x0000000001fbabac in ui_popup_handler (C=0x7fffedc40d98, event=0x7fffb5883e08, userdata=0x7fffc84a0588) at /blender/source/blender/editors/interface/interface_handlers.c:10209
        menu = 0x7fffc84a0588
        menu_region = 0x0
        retval = 1
        reset_pie = false
#9  0x0000000001c2f672 in wm_handler_ui_call (C=0x7fffedc40d98, handler=0x7fffb5bccc48, event=0x7fffb5883e08, always_pass=0) at /blender/source/blender/windowmanager/intern/wm_event_system.c:465
        area = 0x7fffe89a16c8
        region = 0x7fffe899e988
        menu = 0x0
        do_wheel_ui = true
        is_wheel = false
        retval = -1249362424
}
Philipp Oeser (lichtwerk) changed the task status from Unknown Status to Unknown Status.Dec 28 2017, 4:17 PM

After some talks on blendercoders, what the add-on did was pretty bad and broken for years (before it caused a memory leak on exit in 2.69 for instance).
I'll keep the blender tag for now as it does touch the F6 redo menu if this happens in the future, even though this kind of storing properties in the operator draw for recursive execution should be avoided.

The fix bellow uses window manager props and update to achieve the same results as before. The biggest difference is that the instead in the menu it is located in the Tools Shelf (T) under the create Tab.
Please test if it works properly:



(note the panel bl_idname should be CURVE_PT_IvyGenPanel missed that)
If acceptable possibly could be included in 2.79a. I'll update the wiki and the release notes. If not the recursive operator calls should be commented out.