[ipxe-devel] ipxe http download hanging

Mike Bryant m at ocado.com
Thu Dec 29 14:49:32 UTC 2016


tl;dr; The http download often hangs when speed is negotiated at
1000Mb/s, and if it does ipxe never recovers

For background, we have:
on the server:
* dnsmasq, handing out redirects to ipxe.efi, over IPv6
* ipxe.efi is built from revision
26050fd4c87c50503d5bd573b2ec91703676e211 (I believe this is the
latest), with `#define NET_PROTO_IPV6`
* bootcfg, serving ipxe config files and coreos pxe images
on the client (directly connected via ethernet):
* Intel NUC5i5RYH
* EFI network booting

When I use ethtool on the server to force the connection speed to
100Mb/s, I am able to boot via EFI, obtain the ipxe image over TFTP,
and successfully download and run the coreos image.

If I leave it as the default (and our desired settings) of
autonegotation, it negotiates at 1000MB/s as expected. Then it
proceeds through the EFI boot, tftp download of ipxe image, up to the
point where it's running the ipxe script:
```
#!ipxe
kernel /assets/coreos/1010.6.0/coreos_production_pxe.vmlinuz
coreos.autologin=tty1
coreos.config.url=http://bootcfg.kubermesh:30085/ignition?uuid=${uuid}&mac=${net0/mac:hexhyp}
coreos.first_boot=1 initrd=coreos_production_pxe_image.cpio.gz
initrd /assets/coreos/1010.6.0/coreos_production_pxe_image.cpio.gz
boot
```

midway through the download of either the kernel or the initrd, this
will often (but not always, it sometimes succeeds) hang. (e.g., it
sits on 19% of the download, and never progresses)

A tcpdump on the server side indicates that the server has sent a
bunch of data packets to the client, but is waiting to receive ACKs.

Running at `DEBUG=tcp:1,httpcore:3,intel:1`, I see it repeating:
```
INTEL 0x9d6dad20 out of transmit descriptors
TCP 0x9d6e2008 could not transmit 35cc7e85..35cc7e85 8bffaf1e: Error 0x2a654089
(http://ipxe.org/2a654089)
```

It also occasionally outputs
TCP 0x9d6e2008 sending keepalive

Though once it gets into this state, no further packets are observed
via tcpdump on the server.

I'd appreciate assistance debugging this, I'm happy to provide
whatever information I can.

Thanks
Mike

-- 


Notice:  This email is confidential and may contain copyright material of 
members of the Ocado Group. Opinions and views expressed in this message 
may not necessarily reflect the opinions and views of the members of the 
Ocado Group. 

 

If you are not the intended recipient, please notify us immediately and 
delete all copies of this message. Please note that it is your 
responsibility to scan this message for viruses. 

 

Fetch and Sizzle are trading names of Speciality Stores Limited and Fabled 
is a trading name of Marie Claire Beauty Limited, both members of the Ocado 
Group.

 

References to the “Ocado Group” are to Ocado Group plc (registered in 
England and Wales with number 7098618) and its subsidiary undertakings (as 
that expression is defined in the Companies Act 2006) from time to time. 
 The registered office of Ocado Group plc is Titan Court, 3 Bishops Square, 
Hatfield Business Park, Hatfield, Herts. AL10 9NE.



More information about the ipxe-devel mailing list