Any time writing in pure python causes a segfault is a serious bug.

Glancing briefly at the code, I have a few ideas for what might have caused
it: I'll take a more detailed look in an hour or two.

Regardless of what's causing the crash, I'd suggest you use the methods
described at http://www.sagemath.org/doc/reference/coercion.html rather than
implementing your own __call__, _coerce_impl on the parent.  It's also a
good idea to use parent() rather than setting self._parent = A directly in
your __init__ method.

I'll get back to you soon with (hopefully) a reason why it's crashing.
David

On Wed, Dec 16, 2009 at 10:09 AM, Daniel Bump <b...@match.stanford.edu>wrote:

>
> I will explain how to make sage have a segmentation fault
> with the following alarming message:
>
> ------------------------------------------------------------
> Unhandled SIGSEGV: A segmentation fault occured in SAGE.
> This probably occured because a *compiled* component
> of SAGE has a bug in it (typically accessing invalid memory)
> or is not properly wrapped with _sig_on, _sig_off.
> You might want to run SAGE under gdb with 'sage -gdb' to debug this.
> SAGE will now terminate (sorry).
> ------------------------------------------------------------
>
> Apply the following patch to sage-4.3.rc0:
> t
> http://sporadic.stanford.edu/bump/patches/coerce_actions_segfault.patch
>
> This creates a file called sage/algebras/iwahori.py. Eventually
> it will make the Iwahori Hecke algebra of a Weyl group but
> at the moment it just makes the group algebra. You can do
> stuff like this:
>
> sage: H = WeylGroupAlgebra("B3")
> sage: [T1,T2,T3]=H.simple_reflections()
> sage: (T2*T3)^4
> 1
> sage: (T1*T2)^3
> 1
>
> Unfortunately you can get a crash by evaluating 2*T1.
>
> A backtrace with gdb shows frames in coerce_actions.c,
> coerce.c, parent.c, parent_old.c and element.c, all
> in sage/structure/ with corresponding cython files *.pyx.
>
> To get the backtrace, run sage -gdb, make it crash, then
> type bt at the gdb prompt.
>
> Examination of the backtrace led to the following more
> direct way of causing the crash:
>
> sage: WeylGroupAlgebra("A2").get_action(ZZ)
>
> I can probably work around this by writing a
> new _get_action_ method, so maybe this is not
> such a severe bug. But I am reporting it here.
>
> If it is deemed severe I will make a trac ticket.
>
> Daniel Bump
>
> --
> To post to this group, send an email to sage-devel@googlegroups.com
> To unsubscribe from this group, send an email to
> sage-devel+unsubscr...@googlegroups.com<sage-devel%2bunsubscr...@googlegroups.com>
> For more options, visit this group at
> http://groups.google.com/group/sage-devel
> URL: http://www.sagemath.org
>

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to