bpy.ops.transform.edge_slide() segfault #31634

Closed
opened 2012-05-29 17:28:46 +02:00 by Philipp Oeser · 4 comments
Member

%%%Hi,

calling "bpy.ops.transform.edge_slide()" from a python script will crash blender.
[I've attached a little script that demonstrates this when run on a default cube].

Here is a backtrace:


(gdb) backtrace

  • 0 0x0000000001078360 in copy_m4_m4 ()
  • 1 0x00000000010784d7 in mult_m4_m4m4 ()
  • 2 0x000000000093bc47 in ED_view3d_ob_project_mat_get ()
  • 3 0x000000000095bae8 in createSlideVerts ()
  • 4 0x00000000009628da in initEdgeSlide ()
  • 5 0x000000000096381d in initTransform ()
  • 6 0x000000000096fbb3 in transformops_data.part.0 ()
  • 7 0x000000000096fc77 in transform_exec ()
  • 8 0x00000000008d11af in wm_operator_invoke ()
  • 9 0x00000000008d1af2 in WM_operator_call_py ()
  • 10 0x000000000101f501 in pyop_call ()
  • 11 0x0000003c3d4e195f in PyEval_EvalFrameEx ()
 from /usr/lib64/libpython3.2mu.so.1.0

12 0x0000003c3d4e2b16 in PyEval_EvalCodeEx ()

 from /usr/lib64/libpython3.2mu.so.1.0
  • 13 0x0000003c3d476c4c in ?? () from /usr/lib64/libpython3.2mu.so.1.0
  • 14 0x0000003c3d453926 in PyObject_Call ()
 from /usr/lib64/libpython3.2mu.so.1.0
  • 15 0x0000003c3d466bf4 in ?? () from /usr/lib64/libpython3.2mu.so.1.0
  • 16 0x0000003c3d453926 in PyObject_Call ()
 from /usr/lib64/libpython3.2mu.so.1.0
  • 17 0x0000003c3d49c284 in ?? () from /usr/lib64/libpython3.2mu.so.1.0
  • 18 0x0000003c3d453926 in PyObject_Call ()
    • Type to continue, or q to quit---
 from /usr/lib64/libpython3.2mu.so.1.0

19 0x0000003c3d4ddcf6 in PyEval_EvalFrameEx ()

 from /usr/lib64/libpython3.2mu.so.1.0

20 0x0000003c3d4e2b16 in PyEval_EvalCodeEx ()

 from /usr/lib64/libpython3.2mu.so.1.0

21 0x0000003c3d4e2d8b in PyEval_EvalCode ()

 from /usr/lib64/libpython3.2mu.so.1.0
  • 22 0x000000000101ac75 in python_script_exec ()
  • 23 0x0000000000acd13f in text_run_script ()
  • 24 0x00000000008d11af in wm_operator_invoke ()
  • 25 0x00000000008d1760 in wm_operator_call_internal ()
  • 26 0x0000000000b723ce in ui_apply_but_funcs_after ()
  • 27 0x0000000000b7e83b in ui_handler_region_menu ()
  • 28 0x00000000008d2580 in wm_handlers_do ()
  • 29 0x00000000008d2e2f in wm_event_do_handlers ()
  • 30 0x00000000008cb6c8 in WM_main ()
  • 31 0x00000000008c9857 in main ()

createSlideVerts() in transform.c relies on both View3D and RegionView3D which I guess are NULL when called from a python script [Sorry, noobish investigations here :)].
I made a little patch that prevents the crash by avoiding function calls that rely on View3D and RegionView3D (and it seems to survive both interactive and from a python script). Will post the patch next.%%%

%%%Hi, calling "bpy.ops.transform.edge_slide()" from a python script will crash blender. [I've attached a little script that demonstrates this when run on a default cube]. Here is a backtrace: **** (gdb) backtrace - 0 0x0000000001078360 in copy_m4_m4 () - 1 0x00000000010784d7 in mult_m4_m4m4 () - 2 0x000000000093bc47 in ED_view3d_ob_project_mat_get () - 3 0x000000000095bae8 in createSlideVerts () - 4 0x00000000009628da in initEdgeSlide () - 5 0x000000000096381d in initTransform () - 6 0x000000000096fbb3 in transformops_data.part.0 () - 7 0x000000000096fc77 in transform_exec () - 8 0x00000000008d11af in wm_operator_invoke () - 9 0x00000000008d1af2 in WM_operator_call_py () - 10 0x000000000101f501 in pyop_call () - 11 0x0000003c3d4e195f in PyEval_EvalFrameEx () ``` from /usr/lib64/libpython3.2mu.so.1.0 ``` # 12 0x0000003c3d4e2b16 in PyEval_EvalCodeEx () ``` from /usr/lib64/libpython3.2mu.so.1.0 ``` - 13 0x0000003c3d476c4c in ?? () from /usr/lib64/libpython3.2mu.so.1.0 - 14 0x0000003c3d453926 in PyObject_Call () ``` from /usr/lib64/libpython3.2mu.so.1.0 ``` - 15 0x0000003c3d466bf4 in ?? () from /usr/lib64/libpython3.2mu.so.1.0 - 16 0x0000003c3d453926 in PyObject_Call () ``` from /usr/lib64/libpython3.2mu.so.1.0 ``` - 17 0x0000003c3d49c284 in ?? () from /usr/lib64/libpython3.2mu.so.1.0 - 18 0x0000003c3d453926 in PyObject_Call () - Type <return> to continue, or q <return> to quit--- ``` from /usr/lib64/libpython3.2mu.so.1.0 ``` # 19 0x0000003c3d4ddcf6 in PyEval_EvalFrameEx () ``` from /usr/lib64/libpython3.2mu.so.1.0 ``` # 20 0x0000003c3d4e2b16 in PyEval_EvalCodeEx () ``` from /usr/lib64/libpython3.2mu.so.1.0 ``` # 21 0x0000003c3d4e2d8b in PyEval_EvalCode () ``` from /usr/lib64/libpython3.2mu.so.1.0 ``` - 22 0x000000000101ac75 in python_script_exec () - 23 0x0000000000acd13f in text_run_script () - 24 0x00000000008d11af in wm_operator_invoke () - 25 0x00000000008d1760 in wm_operator_call_internal () - 26 0x0000000000b723ce in ui_apply_but_funcs_after () - 27 0x0000000000b7e83b in ui_handler_region_menu () - 28 0x00000000008d2580 in wm_handlers_do () - 29 0x00000000008d2e2f in wm_event_do_handlers () - 30 0x00000000008cb6c8 in WM_main () - 31 0x00000000008c9857 in main () **** createSlideVerts() in transform.c relies on both View3D and RegionView3D which I guess are NULL when called from a python script [Sorry, noobish investigations here :)]. I made a little patch that prevents the crash by avoiding function calls that rely on View3D and RegionView3D (and it seems to survive both interactive and from a python script). Will post the patch next.%%%
Author
Member

Changed status to: 'Open'

Changed status to: 'Open'
Author
Member

%%%patch is #31635%%%

%%%patch is #31635%%%

%%%Fix based on this patch committed, thanks!%%%

%%%Fix based on this patch committed, thanks!%%%

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 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#31634
No description provided.