Skip to content
  • Allan Stephens's avatar
    tipc: Prevent broadcast link stalling when another node fails · 169073db
    Allan Stephens authored
    
    
    Ensure that broadcast link messages that have not been acknowledged
    by a newly failed node do not get an implied acknowledgement until the
    failed node is removed from the broadcast link's map of reachable nodes.
    
    Previously, a race condition allowed a new broadcast link message to be
    sent after the implicit acknowledgement processing was completed, but
    before the map of reachable nodes was updated, resulting in the message
    having an expected acknowledgement count that required the failed node
    to explicitly acknowledge the message. Since this would never occur
    the new message would remain in the broadcast link's transmit queue
    forever, eventually causing the link to become congested and "stall".
    Delaying the implicit acknowledgement processing until after the update
    of the map of reachable nodes eliminates this race condition and prevents
    stalling.
    
    Signed-off-by: default avatarAllan Stephens <allan.stephens@windriver.com>
    Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
    169073db