Ivy Generator crash #53579

Closed
opened 2017-12-18 10:05:21 +01:00 by Denzyl · 12 comments

System Information
windows 10 nvidia gtx970

Blender Version
Broken: (v2.79)

Short description of error
when adjusting Maximum Time blender crashes.

**System Information** windows 10 nvidia gtx970 **Blender Version** Broken: (v2.79) **Short description of error** when adjusting Maximum Time blender crashes.
Author

Added subscriber: @DenzylBasterfield

Added subscriber: @DenzylBasterfield

Added subscriber: @Sergey

Added subscriber: @Sergey

Please attach exact steps reproducing the error.

Please attach exact steps reproducing the error.

Added subscriber: @VukGardasevic

Added subscriber: @VukGardasevic

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'
Vuk Gardašević self-assigned this 2017-12-25 19:21:28 +01:00

More than a week passed without a reply.

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

More than a week passed without a reply. Due to the tracker policy, archiving until the required additional information / data is provided.
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

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
}
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 } ```
Member

Changed status from 'Archived' to: 'Open'

Changed status from 'Archived' to: 'Open'

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:

add_curve_ivygen.py
ivy_gen_refactor.png
(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.

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: [add_curve_ivygen.py](https://archive.blender.org/developer/F1703550/add_curve_ivygen.py) ![ivy_gen_refactor.png](https://archive.blender.org/developer/F1703556/ivy_gen_refactor.png) (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.

This issue was referenced by ea4245645c

This issue was referenced by ea4245645cbf68421738d445c2380ef54919186d

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'
Sign in to join this conversation.
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#53579
No description provided.