Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 May 1996 01:56:35 -0500 (CDT)
From:      delerium@eagle.ais.net (Desideratum)
To:        freebsd-bugs@freebsd.org
Subject:   Serial port hangs with pppd
Message-ID:  <m0uP1et-000VxkC@eagle.ais.net>

next in thread | raw e-mail | index | archive | help
I've got a Pentium 133 box running 2.2-960501-SNAP and am using pppd to
connect up to the net.  One pernicious problem happens very consistently:

Randomly, usually when large amounts of data are being transferred over
the line (a 28.8kbps Newcom internal modem at sio3, in this case) as
with ftp or web-browsing, all network connections over ppp0 will hang
fast.  A ping to the uplink at this point gets no response for a few
seconds and then returns a continuous stream of ENOBUFS:

PING 199.0.154.6 (199.0.154.6): 56 data bytes
ping: sendto: No buffer space available
ping: wrote 199.0.154.6 64 chars, ret=-1
ping: sendto: No buffer space available
ping: wrote 199.0.154.6 64 chars, ret=-1
ping: sendto: No buffer space available
ping: wrote 199.0.154.6 64 chars, ret=-1
ping: sendto: No buffer space available
ping: wrote 199.0.154.6 64 chars, ret=-1
^C
--- 199.0.154.6 ping statistics ---
49 packets transmitted, 0 packets received, 100% packet loss

After this has occurred, the serial port seems to be thoroughly hosed
at the kernel level; a SIGTERM to pppd causes it to delay five seconds
or so and log "Connection terminated", though the process is still
active.  Another kill (with any signal, including SIGKILL) results in

	pppd[332]: tcsetattr: Interrupted system call

The pppd process then hangs irrevocably[1] with its state-flags, as
listed by ps, containing E (process exiting) and often a "-" next
to the controlling tty (a3).

All further attempts to access the serial port result in the process
doing the attempted access hanging in an identical or similar state.
So far, the only way to resolve this is to *hard boot* the system.

If anyone has any ideas or possible solutions, they're much appreciated.
I also tried submitting a bug report via send-pr, but I'm not sure
whether this went through properly.


[1]  Actually, I found that by attaching gdb to the running process, it
     could be terminated from there.  This doesn't accomplish much, however,
     as the serial port remains stuck.


--
delerium@ais.net




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