[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Avoid reusing the same TCP port number
From: |
Andrey Borzenkov |
Subject: |
Re: [PATCH] Avoid reusing the same TCP port number |
Date: |
Thu, 3 Jul 2014 22:41:25 +0400 |
В Tue, 1 Jul 2014 13:53:49 +0200
Valentin Dornauer <address@hidden> пишет:
> Hi!
> Attached is another patch from our internal repository. I am not
> certain that it will work under any circumstances and it has only
> been tested on x86 hardware, so please use with care!
>
> We had some very annoying issues with quick consecutive reboots,
> as GRUB would reuse the same TCP port number without properly closing
> the connection (especially when a boot fails). The remote host
> (Apache web server) would then discard the new connection and booting
> from HTTP would fail.
>
>
> I've included excerpts from the original commit message to further
> clarify the problem:
>
> Even if a grub boot succeeds, the TCP connection for the last
> HTTP request stays in state LAST_ACK for some reason. If the
> next reboot happens before the web server discards that connection,
> this will lead to the server not responding to the new SYN on
> the same port number.
>
> Make the initial port number depend on the RTC time. Increase
> it by 80 for every second, wrapping around after 512 seconds.
> The 80 is used because grub opens around 3 connections for every
> file. Use & 511 instead of modulo because of linking problems.
>
> Original patch by Stefan Fritsch <address@hidden>.
>
> - Valentin
>
May be you can simply use grub_get_time_ms()? After all, we are not
interested in exact time, just in some pseudo-random distribution. It
should have less overhead than grub_get_datetime().
signature.asc
Description: PGP signature