[ipxe-devel] Fresh IPXE bug involving http ports

Robin Smidsrød robin at smidsrod.no
Sun Sep 13 17:14:29 UTC 2015

On 27.08.2015 20:03, allen wrote:
> Hi All,
> We've been using iPXE for several years but I recently made changes to
> our process and while doing so, built the latest version.  Think I've
> found a bug.
> We use a mechanism by which a script is delivered to iPXE via http over
> non-standard port 4000.  From our dhcpd.conf:
>    } elsif exists user-class and option user-class = "iPXE" {
>       filename "http://10.xx.xx.xx:4000/ipxe";
> That script provides a menu with a default, which in turn loads the same
> script again with a different default, which ultimately pulls a kernel
> and initrd via http over the standard port 80.
> What I'm seeing is that the kernel request fails telling me that the
> file doesn't exist.  Checking the web server logs, I see that the
> request is actually being issued to port 4000 (the port we used to
> initially provide the iPXE script.)
> After this failure the script ends and drops me to the iPXE shell.  If I
> then manually type the same kernel command, it works perfectly (loads
> via port 80).
> I did a bit of bisection and found that the issue seems to have appeared
> in
> https://git.ipxe.org/ipxe.git/commit/518a98eb56f073c4fd1f20c730e474a6f2c8c2e9.
> If there's anything I can do to provide more information or assist with
> debugging, let me know!
> For now, we're building the previous commit and all is well.

You might have found a regression with the refactored HTTP core. If the
file you download is based on relative location, then it would be common
sense that the file should be downloaded from port 4000 if the script
was also loaded from port 4000. If you're using absolute paths/URLs then
it would be very odd. Could you post some kind of log of what commands
you're actually running? Using syslog support and DEBUG=script should
make it easy to generate a log of which ipxe script commands are run, so
we can understand if it is a regression or just a wrong assumption about
behavior. The fact that it worked earlier, could be a side-effect of
undocumented behavior that has now been fixed.

-- Robin

More information about the ipxe-devel mailing list