Skip to content
  • Mike Hibler's avatar
    Report both PXEBOOTING/BOOTING events on PXE-originated DHCP request. · 25f775fe
    Mike Hibler authored
    A concession to performance. Previously, PXEBOOTING was reported on
    the PXE DHCP request and BOOTING on the following OS-originated request.
    This is conceptually ideal, as that is what those states were intended
    to mean, but it causes two synchronous "reportboot" command executions
    from dhcpd for every node boot. Worse, the time gap between the second,
    OS-originated DHCP call and the first explicit state reported by the
    node itself (e.g., TBSETUP or RELOADSETUP) is generally small enough
    that the node reported state often arrived at stated before the BOOTING
    state from dhcpd. This can cause excess node reboots or other undesirable
    behaviors from stated.
    
    So now we only invoke "reportboot" on the first PXE-originated call and
    tell reportboot to send both PXEBOOTING and BOOTING events at that time.
    This does not eliminate the race condition above, but makes it unlikely
    as there is the whole kernel boot process (10s of seconds) between the
    dhcpd state reports and the first node state report.
    25f775fe