[comp.bugs.4bsd] 4.2 & 4.3 modems hang

lee@unmvax.unm.edu (Lee Ward) (08/20/87)

As far as I can tell this didn't make it the first time. Apologies
if it did.

Subject: Hanging up on a modem in 4.2 & 4.3 requires a manual reset.

Description:
	Under 4.2, we noticed that a user sometimes hung
	up on a line with a job waiting for input (not shells). This
	caused the line to hang. The flags in the tty structure were:
		ISOPEN,WOPEN,HUPCLS
	It didn't happen often and was never really a problem. It required
	that we cycle the power on the modem. Although, sometimes, it magically
	reset itself after a few minutes. Under 4.3 the problem was still
	there but now always magically reset after a few minutes. Now, we
	have a uVAX II with a dhv-11, 4.3 and modems. If someone hangs up
	on anything the problem appears. The only way to get the modem
	line usable again is to cycle the modem and the line resets in
	a few minutes.

	There are no processes in ANY state (other than getty) desiring or
	using the line. DTR is NOT being turned on. The phone rings and rings.
	Here is a "ps" of the current system:
      F UID   PID  PPID CP PRI NI ADDR  SZ  RSS WCHAN        STAT TT  TIME COMMAND
      3   0     0     0  0 -25  0  2ac   0    0 runout       D    ?   0:00 swapper
1008001   0     1     0  0   5  0 1304  23   13 proc         I    ?   0:05 init
1000003   0     2     0  0 -24  0 13504096    0 proc         D    ?   0:00 pagedaemon
1008001   0    47     1  0   1  0 1506  36   24 selwait      S    co  0:38 /etc/syslogd
1008001   0    54     1  0   1  0 1814  33   24 selwait      S    ?   0:23 /etc/routed
1008001   0    58     1  0   1  0 163a  83   80 selwait      I    ?   0:15 /etc/named /etc/named.boot
1008001   0    62     1  0   1  0 1586  31   23 selwait      I    ?   0:10 /etc/timed -M
1008001   0    67     1  0   1  0 1aa0  92   85 mbutl        I    ?   0:05 /usr/lib/sendmail -bd -q30m
1008201   0    77     1  1  15  0 1b4e   4    2 u            S    ?   3:24 /etc/update
1008201   0    80     1  0  15  0 1b3c  15   10 u            I    ?   0:16 /etc/cron
1008001   0    88     1  0   1  0 1b9e  37   33 mbutl        S    ?   1:31 /etc/rwhod
1008001   0    92     1  0   1  0 1bfa  40   20 selwait      I    ?   0:06 /etc/inetd
1008001   0    97     1  0   1  0 1c70  33   18 selwait      I    ?   0:01 /usr/lib/lpd
1008001   0   108     1  0   3  0 14d0  70   47 cons         I    co  0:10 -csh (csh)
1408021   0   122   108  0   3  0 1e88  84   45              T    co  0:00 ftp turing
1408001   0   175     1  1   1  0 23ba  26   18 mbutl        I    ?   0:00 /etc/named-116
1008001   0  8051     1  0   3  0 3e12  13    8 dhu_tty      I    ?   0:00 - D1200 ttyS3 (getty)
1008001   0 10002     1  0   3  0 1d80  13    8 dhu_tty      I    ?   0:00 - D1200 ttyS4 (getty)
1008001   0 10240     1  0   3  0 7b14  13    8 dhu_tty      I    ?   0:00 - D1200 ttyS2 (getty)
1008001   0 10573     1  0   3  0 5084  13    8 dhu_tty      I    ?   0:00 - D1200 ttyS1 (getty)
1008001   0 11051     1  0   3  0 7bde  13    8 dhu_tty      I    ?   0:00 - D1200 ttyS0 (getty)
1008001   0 10576    92  0   1  0 7324  11    9 selwait      S    p0  0:42 rlogind
1008201 226 10577 10576  5  15  0 5756  62   39 u            I    p0  0:05 -csh (csh)
1008021 226 10712 10577 24  31  0 6fc2 139   41              T    p0  0:01 view /tmp/stuck.getty.dump
1008221   0 10800 10577  0  15  0 75f8  54   44 u            I    p0  0:03 -u (csh)
1008021   0 11036 10800  0   5  0 78b0  76   43 proc         I    p0  0:00 postnews
1008001   0 11048 11036  1   1  0 1498 139   50 mbutl        S    p0  0:17 vi + /tmp/post011036
   8201   0 11054 11048 45  15  0 4fe2  51   41 u            S    p0  0:00 sh -c ps alxww
1008001   0 11055 11054 32  33  0 7fbc  85   67              R    p0  0:00 ps alxww
1008001   0 10952    92  1   1  0 52a0  11    9 selwait      I    p1  0:01 rlogind
1008001 226 10953 10952  1   3  0 64b0  61   38 pt_tty       I    p1  0:03 -csh (csh)
1008021   0 10563     1  0   5  0 5a1a  10    9 proc         I    S1  0:00 sh uuwail ucbvax
1008001  66 10591 10563  0   3  0 79a8  62   41 dhu_tty      I    S1  0:00 /usr/lib/uucp/uucico -r1 -sucbvax


	A pstat of the pertinent lines:
1 cons
16 dhu lines
 # RAW CAN OUT     MODE     ADDR DEL COL     STATE  PGRP DISC
 0   0   0   0     4cd8 803eb540   0  39 W             0
 1   0   0   0 140500d8 803eb540   0 -80 WO      H 10130 ntty
 2   0   0   0     4cd8 803eb540   0  96 W             0
 3   1   0   0 10015dd0 803eb540   0  54 WO      H  6552
 4   0   0   0     4cd8 803eb540   0   6 W             0
 5   0   0   0 40000021 803eb540   0 -33               0

	So, how can a line be open but waiting to open? How
	can a line have a process group that doesn't exist. How
	can I have the line either open or waiting to open (but not both :-)?
	Anybody?

Repeat-By:
	Get a uVAX II, put a DHV in it, Attach a modem, login through that
	modem. Cause the originating modem to drop the connection by
	turning it off.


			--Lee Ward

			lee@unmvax.unm.edu
			gatech!unmvax!lee
-- 
			--Lee (Ward)
			{ucbvax,convex,gatech,pur-ee}!unmvax!lee