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
Hi, 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 $? 0 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) Expected: True Got: False ********************************************************************** 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). Regards, Ahzo