Forum Discussion

Ernesto_Mayol_2's avatar
Ernesto_Mayol_2
Icon for Nimbostratus rankNimbostratus
Jan 12, 2018

LB_FAILED. Why exactly?

It is very frustrating not being able to determine why the LB_Failed event was raised. Based on other posts "event info" could be used to determine the reason but that is not returning anything for me and I am in version 12.x. What is more, I am printing the status of the selected LB Node on the LB_Failed event and is coming back as up. Anyone aware of a log/command/something that will point to the exact reason for the failure that triggered the LB_FAILED event? It looks like this has been asked before, but I am starting a new thread with the hope to have better luck. Thanks!

 

2 Replies

  • LB_FAILED even happens when F5 has selected has either:

     

    1. Failed to select a pool member
    2. Pool member selected is not reachable
    3. Pool member fails to respond to connection

    First is triggers if not pool is on the VS or no pool members are available, your LB::status in the LB_FAILED event of an iRule should tell you the selected pool member and the status. Can happen if health monitors interval and timeout values are to small. This should also be in the logs so easy to spot normally.

     

    Second is triggered if no route is found, can happen if dynamic routing is being used and a route it lost for a short time but not long enough for the health monitor to mark the pool member down. You using dynamic routing on the F5?

     

    Third is when the F5 is not getting a response to its connect request. Can happen if the server is really busy and the Maximum Syn Retransmissions setting in the TCP profile is to low. You using a customized TCP profile?

     

    A traffic dump (tcpdump) would be the best way to identify if it happens often enough.

     

  • So been a while but came across this and thought I would share. You can use the command event info within the LB_FAILED event to log a failure reason. You can find the table of failure events in the iRules wiki at iRules event

     

    An example of a very simple iRule to capture this:

     

    when LB_FAILED {
    
        log local0.alert "LB_FAILED triggered,  error code: [event info]"
        
    }