[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#710953: ecl: segfault when both stdout and stderr are full

Control: retitle -1 ecl: segfault when both stdout and stderr are full
Control: found -1 ecl/20.4.24+ds-2
Control: forwarded -1 https://gitlab.com/embeddable-common-lisp/ecl/-/issues/634
Control: affects -1 sagemath


the originally reported problem is already fixed, i.e. only redirecting stderr to /dev/full no longer causes a crash:
$ echo "syntax error" | ecl 2>/dev/full
ECL (Embeddable Common-Lisp) 20.4.24 (git:UNKNOWN)
Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
Copyright (C) 1993 Giuseppe Attardi
Copyright (C) 2013 Juan J. Garcia-Ripoll
Copyright (C) 2018 Daniel Kochmanski
Copyright (C) 2020 Daniel Kochmanski and Marius Gerbershagen
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 in: #<process TOP-LEVEL 0x7f24c8bb5f80>.
Available restarts:

1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.

Broken at SI:BYTECODES. [Evaluation of: SYNTAX] In: #<process TOP-LEVEL 0x7f24c8bb5f80>.
$ echo $?

However, the sagemath testsuite still triggers a related crash in ecl:
sage -t --long --random-seed=0 src/sage/interfaces/tests.py
File "src/sage/interfaces/tests.py", line 34, in sage.interfaces.tests
Failed example:
    subprocess.call("echo syntax error | ecl", **kwds) in (0, 255)

This crash is easy to reproduce:
$ ecl &> /dev/full
Segmentation fault (core dumped)

Occasionally, similar crashes also occur in other sagemath tests, e.g. src/sage/interfaces/lisp.py.
This can be reproduced as follows:
$ sage
sage: l = Lisp()
sage: l._start()
sage: l.quit()

The problem is that ecl crashes when it cannot write to both stdout and stderr.
Therefore I'm reusing this bug for that related problem.

There is already an open upstream issue about this (see the forwarded URL).


Reply to: