Matt Fleming
2013-Jun-07 21:53 UTC
[syslinux] [5.10] PXE + dhcp opts 209, 210 and path issues in tftp/http
On Fri, 07 Jun, at 10:30:11AM, Matt Fleming wrote:> On Wed, 05 Jun, at 09:29:58PM, Gerardo Exequiel Pozzi wrote: > > dnsmasq-tftp: file /run/archiso/bootmnt/arch/libcom32.c32 not found > > dnsmasq-tftp: file /run/archiso/bootmnt/arch//libcom32.c32 not found > > dnsmasq-tftp: file /run/archiso/bootmnt/arch/libcom32.c32 not found > > dnsmasq-tftp: file > > /run/archiso/bootmnt/arch//arch//boot/syslinux/libcom32.c32 not found > > OK, here's the bug - the double /arch. Let me take a look at what's > going on inside PXELINUX.Right, basically the internal PATH variable that keeps a list of directories in which to search for files doesn't play well when it encounters TFTP-style paths. The entire problem stems from the fact that colons (':') are used to separate entries in the PATH directive and they're also used in TFTP-style paths. While I see that you don't use the PATH directive in your config files, a list is built internally nevertheless. Based on my testing your's will look something like, "::/arch/boot/syslinux/" The code in findpath() sees the first ':' and goes nutso. I'm not quite sure what the proper solution is. Clearly using ':' to separate entries was a terrible idea, but presumably some people are using that syntax now and it would cause issues if we changed it - the PATH directive has been supported since 5.00. -- Matt Fleming, Intel Open Source Technology Center
Ady
2013-Jun-07 22:34 UTC
[syslinux] [5.10] PXE + dhcp opts 209, 210 and path issues in tftp/http
> > Right, basically the internal PATH variable that keeps a list of > directories in which to search for files doesn't play well when it > encounters TFTP-style paths. > > The entire problem stems from the fact that colons (':') are used to > separate entries in the PATH directive and they're also used in > TFTP-style paths. While I see that you don't use the PATH directive in > your config files, a list is built internally nevertheless. Based on my > testing your's will look something like, > > "::/arch/boot/syslinux/" > > The code in findpath() sees the first ':' and goes nutso. > > I'm not quite sure what the proper solution is. Clearly using ':' to > separate entries was a terrible idea, but presumably some people are > using that syntax now and it would cause issues if we changed it - the > PATH directive has been supported since 5.00. > > -- > Matt Fleming, Intel Open Source Technology CenterIf I may... Most Linux distros are not using 5.xx yet. From the point of view of the final user, there are still few new features in 5.xx in comparison with 4.xx. Before this issue affects more users, and perhaps even turning into more difficult maintenance and patches, it may be better to suffer a relatively "small" break now than later, when more users and more distros might adopt newer versions (6.xx). I would guess that even those (relatively few) users already using 5.xx would rather correct a couple of cfg files (if they are using the PATH directive with multiple paths), instead of potentially having more serious issues in the future (or making maintenance more difficult because of strange needed patches). I would also guess that those users that are using 5.xx with multiple paths listed in the PATH directive are probably following the development closely enough. IMHO, this seems to be a case where there is no "clean" solution; rather "suffer" from a break now (by choosing a different path-separator for the PATH directive), or it might generate much more problems in the future. Well, at least this is my (very humble) impression. Not being a developer myself, I could be completely and absolutely wrong about it. Best Regards, Ady.
H. Peter Anvin
2013-Jun-08 15:43 UTC
[syslinux] [5.10] PXE + dhcp opts 209, 210 and path issues in tftp/http
On 06/07/2013 03:34 PM, Ady wrote:> > If I may... > > Most Linux distros are not using 5.xx yet. From the point of view of > the final user, there are still few new features in 5.xx in > comparison with 4.xx. Before this issue affects more users, and > perhaps even turning into more difficult maintenance and patches, it > may be better to suffer a relatively "small" break now than later, > when more users and more distros might adopt newer versions (6.xx). > > I would guess that even those (relatively few) users already using > 5.xx would rather correct a couple of cfg files (if they are using > the PATH directive with multiple paths), instead of potentially > having more serious issues in the future (or making maintenance more > difficult because of strange needed patches). > > I would also guess that those users that are using 5.xx with multiple > paths listed in the PATH directive are probably following the > development closely enough. > > IMHO, this seems to be a case where there is no "clean" solution; > rather "suffer" from a break now (by choosing a different > path-separator for the PATH directive), or it might generate much > more problems in the future. Well, at least this is my (very humble) > impression. Not being a developer myself, I could be completely and > absolutely wrong about it. >I think Ady is probably right here. -hpa
H. Peter Anvin
2013-Jun-08 15:45 UTC
[syslinux] [5.10] PXE + dhcp opts 209, 210 and path issues in tftp/http
On 06/07/2013 03:34 PM, Ady wrote:> > If I may... > > Most Linux distros are not using 5.xx yet. From the point of view of > the final user, there are still few new features in 5.xx in > comparison with 4.xx. Before this issue affects more users, and > perhaps even turning into more difficult maintenance and patches, it > may be better to suffer a relatively "small" break now than later, > when more users and more distros might adopt newer versions (6.xx). > > I would guess that even those (relatively few) users already using > 5.xx would rather correct a couple of cfg files (if they are using > the PATH directive with multiple paths), instead of potentially > having more serious issues in the future (or making maintenance more > difficult because of strange needed patches). > > I would also guess that those users that are using 5.xx with multiple > paths listed in the PATH directive are probably following the > development closely enough. > > IMHO, this seems to be a case where there is no "clean" solution; > rather "suffer" from a break now (by choosing a different > path-separator for the PATH directive), or it might generate much > more problems in the future. Well, at least this is my (very humble) > impression. Not being a developer myself, I could be completely and > absolutely wrong about it. >The only other alternative I can think of is to allow quoted strings in PATH. Backslash-escapes are not really usable as some OSes use them and TFTP needs to use the host filename syntax, but quotes are very rare in filenames and probably wouldn't cause too much trouble. -hpa
Schlomo Schapiro
2013-Jun-09 06:52 UTC
[syslinux] [5.10] PXE + dhcp opts 209, 210 and path issues in tftp/http
?Hi,? On 7 June 2013 23:53, Matt Fleming <matt at console-pimps.org> wrote:> I'm not quite sure what the proper solution is. Clearly using ':' to > separate entries was a terrible idea, but presumably some people are > using that syntax now and it would cause issues if we changed it - the > PATH directive has been supported since 5.00. >?I would prefer an incompatible change now than lots of pain later. Both my own tests and the list traffic suggest that 5.xx is not yet as stable as 4.xx and therefore probably not yet used very much in production. Just make sure that the release announcement mentions it. Maybe | (pipe symbol) would make a good separator? Regards, Schlomo?
Possibly Parallel Threads
- [5.10] PXE + dhcp opts 209, 210 and path issues in tftp/http
- [5.10] PXE + dhcp opts 209, 210 and path issues in tftp/http
- [5.10] PXE + dhcp opts 209, 210 and path issues in tftp/http
- [5.10] PXE + dhcp opts 209, 210 and path issues in tftp/http
- [5.10] PXE + dhcp opts 209, 210 and path issues in tftp/http