#14426: Runaway/Segfaulting ECL processes
-------------------------------------+-------------------------------------
       Reporter:  jdemeyer           |        Owner:  jdemeyer
           Type:  defect             |       Status:  closed
       Priority:  blocker            |    Milestone:  sage-5.9
      Component:  packages:          |   Resolution:  fixed
  standard                           |    Merged in:  sage-5.9.rc0
       Keywords:                     |    Reviewers:  Volker Braun, John
        Authors:  Jeroen Demeyer     |  Cremona
Report Upstream:  Reported           |  Work issues:
  upstream. Developers acknowledge   |       Commit:
  bug.                               |     Stopgaps:
         Branch:                     |
   Dependencies:                     |
-------------------------------------+-------------------------------------
Description changed by jdemeyer:

Old description:

> On some systems, when executing
> {{{
> ./sage -tp --long devel/sage/sage/interfaces/lisp.py
> }}}
> there are two ECL processes which do (strace log)
> {{{
> read(0, "(setq sage0 2)\n", 1024)       = 15
> write(1, "\n", 1)                       = 1
> write(1, "2", 1)                        = 1
> write(1, "\n", 1)                       = 1
> write(1, ">", 1)                        = 1
> write(1, " ", 1)                        = 1
> read(0, 0x7f2c263b1000, 1024)           = -1 EIO (Input/output error)
> --- SIGHUP (Hangup) @ 0 (0) ---
> --- SIGCONT (Continued) @ 0 (0) ---
> select(1, [0], NULL, NULL, {0, 0})      = 1 (in [0], left {0, 0})
> select(1, [0], NULL, NULL, {0, 0})      = 1 (in [0], left {0, 0})
> read(0, "", 1024)                       = 0
> write(2, "\n", 1)                       = -1 EIO (Input/output error)
> write(2, "\n", 1)                       = -1 EIO (Input/output error)
> write(2, "\n", 1)                       = -1 EIO (Input/output error)
> write(2, "\n", 1)                       = -1 EIO (Input/output error)
> [...]
> }}}
> after which they either segfault or keep running forever.
>
> A different way to see this problem:
> {{{
> jdemeyer@boxen:/release/merger/sage-5.9.beta2$ ./sage --sh -c 'echo
> syntax error |ecl 2>/dev/full'
> ECL (Embeddable Common-Lisp) 12.12.1 (git:UNKNOWN)
> Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
> Copyright (C) 1993 Giuseppe Attardi
> Copyright (C) 2000 Juan J. Garcia-Ripoll
> ECL is free software, and you are welcome to redistribute it
> under certain conditions; see file 'Copyright' for details.
> Type :h for Help.
> Top level.
> > /bin/bash: line 1: 11264 Done                    echo syntax error
>      11265 Segmentation fault      | ecl 2> /dev/full
> }}}
>
> '''upstream''': [https://sourceforge.net/p/ecls/bugs/257/]
>
> '''spkg''':
> [http://boxen.math.washington.edu/home/jdemeyer/spkg/ecl-12.12.1.p2.spkg]
> ([attachment:ecl-12.12.1.p2.diff diff])
>
> '''apply''': [attachment:14426_doctest.patch]
>
> === ecl-12.12.1.p2 (Jeroen Demeyer, 9 April 2013) ===
>  * #14426: write_error.patch: avoid an infinite loop when reporting
>    an error while writing to stderr.
>  * Rename spkg-make to spkg-src.
>  * Don't unset MAKEFLAGS (it was not clear why this was needed).
>  * It seems no longer needed to disable Altivec.
>  * Support ECL_CONFIGURE environment variable for options to
>    ./configure.

New description:

 On some systems, when executing
 {{{
 ./sage -tp --long devel/sage/sage/interfaces/lisp.py
 }}}
 there are two ECL processes which do (strace log)
 {{{
 read(0, "(setq sage0 2)\n", 1024)       = 15
 write(1, "\n", 1)                       = 1
 write(1, "2", 1)                        = 1
 write(1, "\n", 1)                       = 1
 write(1, ">", 1)                        = 1
 write(1, " ", 1)                        = 1
 read(0, 0x7f2c263b1000, 1024)           = -1 EIO (Input/output error)
 --- SIGHUP (Hangup) @ 0 (0) ---
 --- SIGCONT (Continued) @ 0 (0) ---
 select(1, [0], NULL, NULL, {0, 0})      = 1 (in [0], left {0, 0})
 select(1, [0], NULL, NULL, {0, 0})      = 1 (in [0], left {0, 0})
 read(0, "", 1024)                       = 0
 write(2, "\n", 1)                       = -1 EIO (Input/output error)
 write(2, "\n", 1)                       = -1 EIO (Input/output error)
 write(2, "\n", 1)                       = -1 EIO (Input/output error)
 write(2, "\n", 1)                       = -1 EIO (Input/output error)
 [...]
 }}}
 after which they either segfault or keep running forever.

 A different way to see this problem:
 {{{
 jdemeyer@boxen:/release/merger/sage-5.9.beta2$ ./sage --sh -c 'echo syntax
 error |ecl 2>/dev/full'
 ECL (Embeddable Common-Lisp) 12.12.1 (git:UNKNOWN)
 Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
 Copyright (C) 1993 Giuseppe Attardi
 Copyright (C) 2000 Juan J. Garcia-Ripoll
 ECL is free software, and you are welcome to redistribute it
 under certain conditions; see file 'Copyright' for details.
 Type :h for Help.
 Top level.
 > /bin/bash: line 1: 11264 Done                    echo syntax error
      11265 Segmentation fault      | ecl 2> /dev/full
 }}}

 '''upstream bug''': [http://sourceforge.net/p/ecls/bugs/303/]

 '''spkg''':
 [http://boxen.math.washington.edu/home/jdemeyer/spkg/ecl-12.12.1.p2.spkg]
 ([attachment:ecl-12.12.1.p2.diff diff])

 '''apply''': [attachment:14426_doctest.patch]

 === ecl-12.12.1.p2 (Jeroen Demeyer, 9 April 2013) ===
  * #14426: write_error.patch: avoid an infinite loop when reporting
    an error while writing to stderr.
  * Rename spkg-make to spkg-src.
  * Don't unset MAKEFLAGS (it was not clear why this was needed).
  * It seems no longer needed to disable Altivec.
  * Support ECL_CONFIGURE environment variable for options to
    ./configure.

--

--
Ticket URL: <http://trac.sagemath.org/ticket/14426#comment:43>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to