Forum Discussion

Mayurtester's avatar
Mayurtester
Icon for Altostratus rankAltostratus
Jul 25, 2019

HTTP: retry technical questions

Hello,

I am reading the wiki article for HTTP: retry where I have few questions on "Re-sends a request to a server. Can be either the same or a different request, to the same or a different server."

  1. What does F5 do with server which sends the RESET/5XX error (after selecting different server from the pool)
  2. HAproxy does the HTTP retry for RoundRobin LB method, does F5 support other LB methods while selecting different server.
  3. is F5 doing HTTP retry for POST request where response from server is RESET
  4. How does F5 do TCP connection retry and is it for 1st connection packet?
  5. Correct me if I am wrong, HTTP : retry is for same server where response is 5xx and LB: reselect is for selecting next up server from the pool where response is 5XX?

5 Replies

  • Hi,

     

    I am not quite sure I get all your questions, but I'll give it a try. Do not hesitate to precise your request if not.

     

    1 - HTTP::retry is to be used in HTTP Response and Response_Data events only. Hence, it can process a 500 error received by the backend, but probably not a RESET (L4)

    2 - If you have LTM license, F5 supports many more LB Methods than Round Robin.

    3 - As mentionned, if the server response is reset, you will not trigger HTTP_RESPONSE events, hence, I don't think you can use the HTTP::retry command. It could be donewhen receiving specific HTTP Error status from the backend

    4 - This part is handled by TCP profiles (e.g. parameter Maximum Syn Retransmissions for SYN packet which is 3 by default, and maximum segment restransmission which is 8 by default)

    5 - HTTP Retry resubmits a request. As in the examples given in clouddocs, if you want to interfere with the pool member selection you will need to code it in the iRules.

     

    I hope this somehow helps you, otherwise, do not hesitate to complete, or detail precisely the problem you are trying to solve.

     

    Have a nice day.

     

    Yoann

    • Mayurtester's avatar
      Mayurtester
      Icon for Altostratus rankAltostratus

       

      Thank you for your reply and providing the insights. Please address my follow up question.

      • "if you want to interfere with the pool member selection you will need to code it in the iRules" So May I know if the service will be skipped (removed from the pool) if it is sending the 5xx error
      • I want to know what will happen to the service which has sent the 5xx error, will that remains in the server pool or will it be removed from the pool for some interval so that next request should not select this service. I am referring to LB:FAILED event (https://devcentral.f5.com/s/feed/0D51T00006i7ZpISAU)

       

      • Mayurtester's avatar
        Mayurtester
        Icon for Altostratus rankAltostratus

        Thank you   for your response, As I can see LB:FAILED event takes out the server from the pool so can I use this event along with HTTP retry event.

        I want to make sure if responding server is sending 5xx error, then that server will be out of server pool for some time and then monitor will prob it once server is sending desired response we will add it to server pool again.

        Will that be possible?