Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Oct 1996 13:47:55 -0400 (EDT)
From:      "Stuart R. Anderson" <anderson@hawaii.conterra.com>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   bin/1774: telnet hangup bug
Message-ID:  <199610111747.NAA08025@hawaii.conterra.com>
Resent-Message-ID: <199610111800.LAA14661@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         1774
>Category:       bin
>Synopsis:       telnet spins when killed before network is closed
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Oct 11 11:00:02 PDT 1996
>Last-Modified:
>Originator:     Stuart R. Anderson
>Organization:
Stuart Anderson                  anderson@conterra.com
Conterra Communications
>Release:        FreeBSD 2.1-STABLE i386
>Environment:

	Main server runnning ISP business. Pentium/166.

>Description:

	telnet can go into a run-bound loop if it is killed during the shutdown
	process. telnet keeps going into deadpeer().

>How-To-Repeat:

	We are using pmwho (a portmaster related utility) to create a web
	page displaying who is logged in. Pmwho uses telnet to communicate
	with the Portmaster. When pmwho exits, telnet receives a signal which
	begins the looping.

	During the last incident, we managed to get a load avarage of 100+.

>Fix:

	Reset the signal handler to avoid the loop. There is probably one or
	two other places where this could be placed, but this one works for us.
	
diff -c sys_bsd.c.orig sys_bsd.c
*** sys_bsd.c.orig      Fri Oct 11 13:33:49 1996
--- sys_bsd.c   Fri Oct 11 13:33:59 1996
***************
*** 789,794 ****
--- 789,795 ----
  NetClose(fd)
      int       fd;
  {
+     (void) signal(SIGPIPE, SIG_DFL);
      return close(fd);
  }
  


>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199610111747.NAA08025>