#10250: segfault when multiplying QQ constant and SR vector (with user basis)
------------------------------+---------------------------------------------
   Reporter:  jason           |       Owner:  jason, was
       Type:  defect          |      Status:  new       
   Priority:  major           |   Milestone:            
  Component:  linear algebra  |    Keywords:            
     Author:                  |    Upstream:  N/A       
   Reviewer:                  |      Merged:            
Work_issues:                  |  
------------------------------+---------------------------------------------

Comment(by vbraun):

 The problem seems to be that the coercion ends up calling `__rmul__`
 (which is inherited) and not `_rmul_` (which is directly defined in
 `FreeModuleElement_generic_dense`:
 {{{
 sage: x
 (sqrt(2), sqrt(2))
 sage: x._rmul_(3)
 (3*sqrt(2), 3*sqrt(2))
 sage: x.__rmul__(3)
 ------------------------------------------------------------
 Unhandled SIGSEGV: A segmentation fault occurred in Sage.
 }}}

 For the record, stack backtrace:
 {{{
 #0  __cxxabiv1::__dynamic_cast (src_ptr=0x100000001,
 src_type=0x7fffd3a02f40,
     dst_type=0x7fffd3a090c0, src2dst=0)
     at ../../../../libstdc++-v3/libsupc++/dyncast.cc:54
 #1  0x00007fffd3224803 in is_a<GiNaC::relational> (__pyx_v_left=0x428c9e0,
     __pyx_v_right=0x41b9d70, __pyx_skip_dispatch=<value optimized out>)
     at /home/vbraun/Sage/sage/local/include/pynac/basic.h:305
 #2  is_a<GiNaC::relational> (__pyx_v_left=0x428c9e0,
 __pyx_v_right=0x41b9d70,
     __pyx_skip_dispatch=<value optimized out>)
     at /home/vbraun/Sage/sage/local/include/pynac/ex.h:939
 #3  __pyx_f_4sage_8symbolic_10expression_10Expression__mul_ (
     __pyx_v_left=0x428c9e0, __pyx_v_right=0x41b9d70,
     __pyx_skip_dispatch=<value optimized out>)
     at sage/symbolic/expression.cpp:11284
 #4  0x00007fffe046a122 in
 
__pyx_f_4sage_7modules_19free_module_element_31FreeModuleElement_generic_dense__rmul_
 (__pyx_v_self=0x4289940,
     __pyx_v_left=0x428c9e0, __pyx_skip_dispatch=<value optimized out>)
     at sage/modules/free_module_element.c:15600
 #5  0x00007fffe992212c in
 __pyx_f_4sage_9structure_14coerce_actions_16LeftModuleAction__call_
 (__pyx_v_self=0x72c410, __pyx_v_g=0x428c9e0,
     __pyx_v_a=0x4289940, __pyx_skip_dispatch=<value optimized out>)
     at sage/structure/coerce_actions.c:5437
 #6  0x00007fffe9d4e9a1 in __pyx_pf_4sage_10categories_6action_6Action_act
 (
     __pyx_v_self=0x72c410, __pyx_args=0x412ce18, __pyx_kwds=0x0)
     at sage/categories/action.c:2563
 #7  0x00007ffff7c7e3b3 in PyObject_Call (func=0x737098,
     arg=<value optimized out>, kw=<value optimized out>)
     at Objects/abstract.c:2492
 #8  0x00007fffe9927764 in
 __pyx_pf_4sage_9structure_14coerce_actions_12ModuleAction___init__
 (__pyx_v_self=0x72c410, __pyx_args=<value optimized out>,
     __pyx_kwds=<value optimized out>) at
 sage/structure/coerce_actions.c:5133
 #9  0x00007ffff7cd9f18 in type_call (type=<value optimized out>,
     args=0x412d5f0, kwds=0x0) at Objects/typeobject.c:747
 #10 0x00007ffff7c7e3b3 in PyObject_Call (func=0x7fffe9b33de0,
     arg=<value optimized out>, kw=<value optimized out>)
     at Objects/abstract.c:2492
 #11 0x00007fffe992a52c in
 __pyx_pf_4sage_9structure_14coerce_actions_detect_element_action
 (__pyx_self=<value optimized out>,
     __pyx_args=<value optimized out>, __pyx_kwds=<value optimized out>)
     at sage/structure/coerce_actions.c:4184
 #12 0x00007ffff7c7e3b3 in PyObject_Call (func=0x1042d40,
     arg=<value optimized out>, kw=<value optimized out>)
     at Objects/abstract.c:2492
 #13 0x00007fffeae9d34f in
 __pyx_f_4sage_9structure_6parent_6Parent_discover_action
 (__pyx_v_self=0x42d27f0, __pyx_v_S=0x121e8e0, __pyx_v_op=0x1042d40,
     __pyx_v_self_on_left=0) at sage/structure/parent.c:14710
 #14 0x00007fffeb0c5ecd in
 __pyx_f_4sage_9structure_10parent_old_6Parent_get_acti---Type <return> to
 continue, or q <return> to quit---
 on_c_impl (__pyx_v_self=0x42d27f0, __pyx_v_S=<value optimized out>,
     __pyx_v_op=<value optimized out>,
     __pyx_v_self_on_left=<value optimized out>)
     at sage/structure/parent_old.c:3254
 #15 0x00007fffeb0c7441 in
 __pyx_pf_4sage_9structure_10parent_old_6Parent_get_action_impl
 (__pyx_v_self=0x42d27f0, __pyx_args=<value optimized out>,
     __pyx_kwds=<value optimized out>) at sage/structure/parent_old.c:3204
 #16 0x00007ffff7c7e3b3 in PyObject_Call (func=0x41abfc8,
     arg=<value optimized out>, kw=<value optimized out>)
     at Objects/abstract.c:2492
 #17 0x00007fffeb0cdeb2 in
 __pyx_f_4sage_9structure_10parent_old_6Parent_get_action_c
 (__pyx_v_self=0x42d27f0, __pyx_v_S=0x121e8e0, __pyx_v_op=0x78a1b8,
     __pyx_v_self_on_left=0, __pyx_skip_dispatch=<value optimized out>)
     at sage/structure/parent_old.c:2892
 #18 0x00007fffeb0c16c3 in
 __pyx_f_4sage_9structure_10parent_old_6Parent__get_action_
 (__pyx_v_self=0x42d27f0, __pyx_v_other=0x121e8e0,
     __pyx_v_op=<value optimized out>,
     __pyx_v_self_on_left=<value optimized out>,
     __pyx_skip_dispatch=<value optimized out>)
     at sage/structure/parent_old.c:6069
 #19 0x00007fffeae9ab71 in
 __pyx_f_4sage_9structure_6parent_6Parent_get_action (
     __pyx_v_self=0x42d27f0, __pyx_v_S=0x121e8e0,
     __pyx_skip_dispatch=<value optimized out>,
     __pyx_optional_args=<value optimized out>) at
 sage/structure/parent.c:13731
 #20 0x00007fffea5bf810 in
 __pyx_f_4sage_9structure_6coerce_24CoercionModel_cache_maps_discover_action
 (__pyx_v_self=0x1043350, __pyx_v_R=0x121e8e0,
     __pyx_v_S=0x42d27f0, __pyx_v_op=0x78a1b8,
     __pyx_skip_dispatch=<value optimized out>) at
 sage/structure/coerce.c:11909
 #21 0x00007fffea5b2aca in
 __pyx_f_4sage_9structure_6coerce_24CoercionModel_cache_maps_get_action
 (__pyx_v_self=0x1043350, __pyx_v_R=0x121e8e0,
     __pyx_v_S=0x42d27f0, __pyx_v_op=0x78a1b8,
     __pyx_skip_dispatch=<value optimized out>) at
 sage/structure/coerce.c:10837
 #22 0x00007fffea5b5417 in
 __pyx_f_4sage_9structure_6coerce_24CoercionModel_cache_maps_bin_op
 (__pyx_v_self=0x1043350, __pyx_v_x=0x3296bd0,
     __pyx_v_y=0x4289c00, __pyx_v_op=0x78a1b8,
     __pyx_skip_dispatch=<value optimized out>) at
 sage/structure/coerce.c:6080
 #23 0x00007fffea7f8c8d in
 __pyx_pf_4sage_9structure_7element_11RingElement___mul__
 (__pyx_v_left=0x3296bd0, __pyx_v_right=0x4289c00)
     at sage/structure/element.c:11399
 #24 0x00007ffff7c7998a in binary_op1 (v=0x3296bd0, w=0x4289c00,
 op_slot=16)
     at Objects/abstract.c:917
 #25 0x00007ffff7c7c788 in PyNumber_Multiply (v=0x3296bd0, w=0x4289c00)
     at Objects/abstract.c:1188
 #26 0x00007ffff7
     throwflag=<value optimized out>) at Python/ceval.c:1118
 #27 0x00007ffff7d2072c in PyEval_EvalCodeEx (co=0x6fabe8,
     globals=<value optimized out>, locals=<value optimized out>,
     args=<value optimized out>, argcount=0, kws=<value optimized out>,
     kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2968
 #28 0x00007ffff7d20802 in PyEval_EvalCode (co=<value optimized out>,
     globals=<value optimized out>, locals=<value optimized out>)
     at Python/ceval.c:522
 #29 0x00007ffff7d1f162 in exec_statement (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:4401
 #30 PyEval_EvalFrameEx (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:1717
 #31 0x00007ffff7d2072c in PyEval_EvalCodeEx (co=0xb13c60,
     globals=<value optimized out>, locals=<value optimized out>,
     args=<value optimized out>, argcount=2, kws=<value optimized out>,
     kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2968
 #32 0x00007ffff7d1e8de in fast_function (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:3802
 #33 call_function (f=<value optimized out>, throwflag=<value optimized
 out>)
     at Python/ceval.c:3727
 #34 PyEval_EvalFrameEx (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:2389
 #35 0x00007ffff7d2072c in PyEval_EvalCodeEx (co=0xb13af8,
     globals=<value optimized out>, locals=<value optimized out>,
     args=<value optimized out>, argcount=3, kws=<value optimized out>,
     kwcount=0, defs=0xb730f8, defcount=2, closure=0x0) at
 Python/ceval.c:2968
 #36 0x00007ffff7d1e8de in fast_function (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:3802
 #37 call_function (f=<value optimized out>, throwflag=<value optimized
 out>)
     at Python/ceval.c:3727
 #38 PyEval_EvalFrameEx (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:2389
 #39 0x00007ffff7d1fa7f in fast_function (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:3792
 #40 call_function (f=<value optimized out>, throwflag=<value optimized
 out>)
     at Python/ceval.c:3727
 #41 PyEval_EvalFrameEx (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:2389
 #42 0x00007ffff7d2072c in PyEval_EvalCodeEx (co=0xb13300,
     globals=<value optimized out>, locals=<value optimized out>,
     args=<value optimized out>, argcount=2, kws=<value optimized out>,
     kwcount=0, defs=0xb6c868, defcount=1, closure=0x0) at
 Python/ceval.c:2968
 #43 0x00007ffff7d1e8de in fast_function (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:3802
 #44 call_function (f=<value optimized out>, throwflag=<value optimized
 out>)
     at Python/ceval.c:3727
 #45 PyEval_EvalFrameEx (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:2389
 #46 0x00007ffff7d2072c in PyEval_EvalCodeEx (co=0xb10cd8,
     globals=<value optimized out>, locals=<value optimized out>,
     args=<value optimized out>, argcount=2, kws=<value optimized out>,
     kwcount=0, defs=0xb6c828, defcount=1, closure=0x0) at
 Python/ceval.c:2968
 #47 0x00007ffff7d1e8de in fast_function (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:3802
 #48 call_function (f=<value optimized out>, throwflag=<value optimized
 out>)
     at Python/ceval.c:3727
 #49 PyEval_EvalFrameEx (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:2389
 #50 0x00007ffff7d2072c in PyEval_EvalCodeEx (co=0x931f30,
     globals=<value optimized out>, locals=<value optimized out>,
     args=<value optimized out>, argcount=1, kws=<value optimized out>,
     kwcount=2, defs=0x93d8d8, defcount=2, closure=0x0) at
 Python/ceval.c:2968
 #51 0x00007ffff7d1e8de in fast_function (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:3802
 #52 call_function (f=<value optimized out>, throwflag=<value optimized
 out>)
     at Python/ceval.c:3727
 #53 PyEval_EvalFrameEx (f=<value optimized out>,
     throwflag=<value optimized out>) at Python/ceval.c:2389
 #54 0x00007ffff7d2072c in PyEval_EvalCodeEx (co=0x6da378,
     globals=<value optimized out>, locals=<value optimized out>,
     args=<value optimized out>, argcount=0, kws=<value optimized out>,
     kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2968
 #55 0x00007ffff7d20802 in PyEval_EvalCode (co=<value optimized out>,
     globals=<value optimized out>, locals=<value optimized out>)
     at Python/ceval.c:522
 #56 0x00007ffff7d42600 in run_mod (fp=0x625830,
     filename=<value optimized out>, start=<value optimized out>,
     globals=0x63c080, locals=0x63c080, closeit=0, flags=0x7fffffffd8b0)
     at Python/pythonrun.c:1335
 #57 PyRun_FileExFlags (fp=0x625830, filename=<value optimized out>,
     start=<value optimized out>, globals=0x63c080, locals=0x63c080,
 closeit=0,
     flags=0x7fffffffd8b0) at Python/pythonrun.c:1321
 #58 0x00007ffff7d430cf in PyRun_SimpleFileExFlags (fp=0x625830,
     filename=0x7fffffffeac3 "/home/vbraun/Sage/sage/local/bin/sage-
 ipython",
     closeit=0, flags=0x7fffffffd8b0) at Python/pythonrun.c:931
 #59 0x00007ffff7d5205b in RunStartupFile (argc=<value optimized out>,
     argv=0x7fffffffd9d8) at Modules/main.c:142
 #60 Py_Main (argc=<value optimized out>, argv=0x7fffffffd9d8)
     at Modules/main.c:558
 #61 0x000000381a81ee7d in __libc_start_main (main=0x400710 <main>, argc=2,
     ubp_av
     fini=<value optimized out>, rtld_fini=<value optimized out>,
     stack_end=0x7fffffffd9c8) at libc-start.c:226
 #62 0x0000000000400649 in _start ()
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10250#comment:11>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to