[21919] in Athena Bugs
Re: sun4 9.1.16: discuss
daemon@ATHENA.MIT.EDU (Greg Hudson)
Sat Apr 26 14:13:42 2003
From: Greg Hudson <ghudson@MIT.EDU>
To: Arun A Tharuvai <aatharuv@mit.edu>
Cc: bugs@mit.edu
In-Reply-To: <200304261659.MAA28287@multics.mit.edu>
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Message-Id: <1051380818.1552.186.camel@error-messages.mit.edu>
Mime-Version: 1.0
Date: 26 Apr 2003 14:13:39 -0400
This is a long-standing known bug in discuss. The problem is, if you
type ^C, the SIGINT handler longjmp()s back to the main loop, presenting
two problems: any open network connection may not be in a state to
receive new commands (particuarly if you were in the middle of an "ls"
or "lsm"), and any global state might be in the middle of a sensitive
operation. Either problem could lead to a core dump, although the
second one is harder to guard against.
A possible practical solution is to close all open network connections
and reinitialize all global state after a ^C. (Theoretically, this is
still no good; it would probably entail leaking memory, and if you
pressed ^C in the middle of a malloc, you'd still lose.) That would
take significant work, and we don't like to put significant work into
discuss these days.