#11752: ecl.pyx should not touch SIGPWR neither SIGXCPU when initializing ecl
--------------------------+-------------------------------------------------
Reporter: pcpa | Owner: was
Type: defect | Status: positive_review
Priority: minor | Milestone: sage-4.7.2
Component: interfaces | Keywords:
Work_issues: | Upstream: N/A
Reviewer: Nils Bruin | Author: Paulo César Pereira de Andrade
Merged: | Dependencies:
--------------------------+-------------------------------------------------
Description changed by nbruin:
Old description:
> I experienced a problem in the Mandriva sagemath 4.7.1 that was causing
> sage to exit with the this somewhat funny message:
>
> sage: from sage.interfaces.maxima_lib import maxima_lib
>
> `/usr/share/sage/local/bin/sage-sage: line 178: 7177 Power failure
> sage-ipython "$@" -iThe problem is the logic in ecl.pyx that saves
> all signal handlers, initializes ecl and restores them, but this has the
> nasty side effect of messing with Boehm GC thread handling, that uses
> SIGXCPU and SIGPWR to stop/restart threads during gc.The attached patch
> corrects the problem for me, but is just a suggestion, and may need
> proper testing on non Linux systems, but on other systems Boehm GC should
> use a signal number larger than 32. Or, maybe add some comments about
> what those numbers are (SIGPWR = 30 and SIGXCPU = 24).`
New description:
I experienced a problem in the Mandriva sagemath 4.7.1 that was causing
sage to exit with the this somewhat funny message:
sage: from sage.interfaces.maxima_lib import maxima_lib
`/usr/share/sage/local/bin/sage-sage: line 178: 7177 Power failure
sage-ipython "$@" -i`
The problem is the logic in ecl.pyx that saves all signal handlers,
initializes ecl and restores them, but this has the nasty side effect of
messing with Boehm GC thread handling, that uses SIGXCPU and SIGPWR to
stop/restart threads during gc.The attached patch corrects the problem for
me, but is just a suggestion, and may need proper testing on non Linux
systems, but on other systems Boehm GC should use a signal number larger
than 32. Or, maybe add some comments about what those numbers are (SIGPWR
= 30 and SIGXCPU = 24).
-----
Solution turned out to be: tell ECL not to create a separate signal-
handling thread (which it won't do if threads are not enabled, as in the
standard Sage build of ECL).
Apply 11752_ecl-nothread.patch
--
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11752#comment:16>
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.