tcp bug

rajec@isr.uni-stuttgart.de
Thu, 23 May 1996 11:59:55 +0200 (MET DST)


Hi kernel hackers,

I'm not sure if this is a bug. If not, please ignore this report.

The problem is that under certain circumstances I can't open a tcp
connection, because bind() reports 'Address already in use'. And I
think it's not the usual SO_REUSEADDR stuff.

netstat -o output shows that the socket is in LAST_ACK state :

> Proto Recv-Q Send-Q Local Address Foreign Address (State) User
> tcp 1 24821 pc18.isr:ISR-autopilot al5.isr.uni-stutt:1610 LAST_ACK root on (12.75/0)

The timer counts down to zero, then starts _again_ at 120.00, and never
releases the socket. The remote host has already closed the connection
and believes that the communication is over.

The scenario is as follows :

1) start the server process at the Linux side (kernel 1.99.4)
2) start the client at the remote host (Alpha, VMS 6.?)
3) kill the client process on Alpha
4) kill the server process on Linux

At this point it's not possible to start the server process on Linux
anymore because of 'Address already in use'. The only solution is to
reboot the machine.

Viele Gruesse,

stefan rajec

PS: I read the mailing list in the linux.dev.kernel newsgroup, so it
may take some time till I can send additional details, in case someone
needs them. The newsgroup was quiet in the last few days, now it is
flooding our news server with at least 150 articles a day.