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>