DevStack: Standard PXE setup broken: pxelinux.0 not found

Bug #1638940 reported by Lucas Alvares Gomes
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Ironic
Fix Released
Medium
Pavlo Shchelokovskyy

Bug Description

The DevStack setup for standard PXE (IRONIC_IPXE_ENABLED=False) is broken because the "pxelinux.0" ROM is now part of a package called "pxelinux" and it lives at "/usr/lib/PXELINUX/pxelinux.0" (instead of /usr/lib/syslinux/pxelinux.0)

Log:

2016-11-03 14:12:22.703 | ++/opt/stack/ironic/devstack/lib/ironic:configure_ironic_dirs:496 sudo install -d -o stack /etc/ironic stack /opt/stack/data/ironic /var/lib/ironic /opt/stack/data/ironic/tftpboot /opt/stack/data/ironic/tftpboot/pxelinux.cfg
2016-11-03 14:12:22.712 | ++/opt/stack/ironic/devstack/lib/ironic:configure_ironic_dirs:498 sudo chown -R stack:libvirtd /opt/stack/data/ironic/tftpboot
2016-11-03 14:12:22.722 | ++/opt/stack/ironic/devstack/lib/ironic:configure_ironic_dirs:500 [[ False == \T\r\u\e ]]
2016-11-03 14:12:22.730 | ++/opt/stack/ironic/devstack/lib/ironic:configure_ironic_dirs:504 '[' '!' -f /usr/lib/syslinux/pxelinux.0 ']'
2016-11-03 14:12:22.738 | ++/opt/stack/ironic/devstack/lib/ironic:configure_ironic_dirs:505 die 505 'PXE boot file /usr/lib/syslinux/pxelinux.0 not found.'
2016-11-03 14:12:22.742 | ++functions-common:die:186 local exitcode=0
2016-11-03 14:12:22.746 | [Call Trace]
2016-11-03 14:12:22.746 | ./stack.sh:1185:run_phase
2016-11-03 14:12:22.746 | /opt/stack/devstack/functions-common:1889:run_plugins
2016-11-03 14:12:22.746 | /opt/stack/devstack/functions-common:1856:source
2016-11-03 14:12:22.746 | /opt/stack/ironic/devstack/plugin.sh:27:configure_ironic
2016-11-03 14:12:22.747 | /opt/stack/ironic/devstack/lib/ironic:594:configure_ironic_dirs
2016-11-03 14:12:22.747 | /opt/stack/ironic/devstack/lib/ironic:505:die
2016-11-03 14:12:22.748 | [ERROR] /opt/stack/ironic/devstack/lib/ironic:505 PXE boot file /usr/lib/syslinux/pxelinux.0 not found.

Changed in ironic:
importance: Undecided → Medium
assignee: nobody → Lucas Alvares Gomes (lucasagomes)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic (master)

Fix proposed to branch: master
Review: https://review.openstack.org/393353

Changed in ironic:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (master)

Reviewed: https://review.openstack.org/393353
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=2f201d0c4e956dcdf34b9165f67c2c4592f3e74b
Submitter: Jenkins
Branch: master

commit 2f201d0c4e956dcdf34b9165f67c2c4592f3e74b
Author: Lucas Alvares Gomes <email address hidden>
Date: Thu Nov 3 14:42:53 2016 +0000

    DevStack: Fix standard PXE on Ubuntu Xenial

    The pxelinux.0 file in Ubuntu Xenial is now distributed by the
    "pxelinux" package and lives at /usr/lib/PXELINUX/pxelinux.0 instead
    of /usr/lib/syslinux/pxelinux.0.

    This patch refactors the get_pxe_boot_file() function to accommodate to
    be able to find the pxelinux.0 binary in the new path and also creates a
    new setup_syslinux_modules() function to place the *.c32 modules in the
    TFTP root dir (which in Xenial doesn't live at the same directory as the
    PXE image anymore).

    Change-Id: I9bd412f10f2235f1979a12dd3004fc60d4aa922f
    Closes-Bug: #1638940

Changed in ironic:
status: In Progress → Fix Released
Revision history for this message
Pavlo Shchelokovskyy (pshchelo) wrote :

Still broken as evidenced by failing gate-tempest-dsvm-ironic-pxe_ipmitool-postgres-ubuntu-xenial-nv job [0] which does not find the pxelinux.0 at all during DevStack setup (and this the only job AFAIU that uses PXE instead of iPXE).

The reason is that pxelinux.0 is provided by different package under Xenial (pxelinux) and this is not being installed [1]. An extra trouble is that such package does not exist on Trusty at all (it first appeared in 15.04) so we'd have to resort to ugly version check since DevStack still is supposed to support Trusty AFAIK.

[0] http://logs.openstack.org/46/397846/4/check/gate-tempest-dsvm-ironic-pxe_ipmitool-postgres-ubuntu-xenial-nv/3580f40/logs/devstacklog.txt.gz#_2016-11-17_22_29_21_319
[1] http://logs.openstack.org/46/397846/4/check/gate-tempest-dsvm-ironic-pxe_ipmitool-postgres-ubuntu-xenial-nv/3580f40/logs/dpkg-l.txt.gz

Reopening.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to ironic (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/399485

Dmitry Tantsur (divius)
Changed in ironic:
status: Fix Released → In Progress
Changed in ironic:
assignee: Lucas Alvares Gomes (lucasagomes) → Pavlo Shchelokovskyy (pshchelo)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (master)

Reviewed: https://review.openstack.org/399485
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=d21564eabaa27d0e801fb58153a21b9f53c9f069
Submitter: Jenkins
Branch: master

commit d21564eabaa27d0e801fb58153a21b9f53c9f069
Author: Pavlo Shchelokovskyy <email address hidden>
Date: Fri Nov 18 11:52:50 2016 +0200

    Fix PXE setup for fresh Ubuntu Xenial

    Since Ubuntu 15.04 the file 'pxelinux.0' is provided by different
    package ('pxelinux') which is not being installed by DevStack.
    Extra problem is that this package does not exsit for earlier Ubuntu
    versions at all.

    More over, while in Trusty 'syslinux' package depends on
    'syslinux-common', it only recommends it in Xenial, but we need it
    installed as it provides *.c32 modules required for syslinux.

    This patch adds 'syslinux-common' and 'pxelinux' to required deb packages
    list when distro is 'xenial' or 'jessie' (as this packaging change has
    its origin in Debian) by using the distro pinning in the package lists
    as supported by DevStack.

    Change-Id: I473fc4eb52f28a456c3f6888d5c7b25e8e08be26
    Closes-Bug: #1638940

Changed in ironic:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/ironic 7.0.0

This issue was fixed in the openstack/ironic 7.0.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.