Skip to content
Snippets Groups Projects
  • Iustin Pop's avatar
    masterd: move the IP activation from Exec to Check · 340f4757
    Iustin Pop authored
    
    Currently, the master IP activation is done in the Exec function. Since
    the original masterd process returns after forking, and Exec is run in
    the (grand)child process, this means that after 'ganeti-masterd' has
    returned there are still initialization tasks running.
    
    Normally this is not a problem, but in cases where one does quick master
    failovers, this creates a race condition which hits the QA scripts
    especially hard.
    
    To solve this, and make the startup process cleaner (the system is in
    steady state after the command has returned, even though masterd startup
    could still fail), we move the IP activation to Check(). This also
    allows error messages about the IP activation to be seen on the console.
    
    With this patch enabled, I can no longer reproduce the double-failover
    errors, which were occuring before in 4/5 cases.
    
    Signed-off-by: default avatarIustin Pop <iustin@google.com>
    Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
    340f4757