Forum Discussion

James_Price_485's avatar
James_Price_485
Icon for Nimbostratus rankNimbostratus
Jun 02, 2016

upgrade from 11.6 to 12.0 breaks persistence

This irule works in 11.6 but does not in version 12.0. The persistence is supposed to get set when the database is known. This occurs on the first request to the server. My understanding is that cooking gets set in the response to the client. Then the client will maintain that cookie until it expires. This logic has worked since version 9. The uri that it operates on looks like the following: forms/frmservlet?config=prod

A couple of tcpdumps show the cookie is set on version 11.6 and continues to be set on each subsequent http requests. On 12.0 the inb_cookie is shown on the initial http request but disappears on subsequent requests. Any idea on what is going on here?

The server also has a cookie profile with a cookie insert with a different name. One option I see that I have is to do away with the pool displacement section all together because only one database is now called on this server. Just let the cookie profile hand out the cookie and the default pool be called.

Thanks for any responses,

when HTTP_REQUEST { set database [ findstr [http_uri] "config=" 7 "&" ]; if { [HTTP::header "User-Agent" ] contains "Mac OS" } {

 set firstthree [substr $database 0 3];

   if { "$firstthree" equals "mac"  or  "$database"  equals ""  } {
   return
   }
   else { 
    log local0. "firstthree $firstthree database $database"
    set uri [HTTP::uri];
    set query [HTTP::query]
    set dirprog [HTTP::path ]
    set end_query [ findstr $query, "&" 0 ];
    set macconf "mac${database}"; 

    set new_query  "config=${macconf}${end_query}";
    set new_uri "${dirprog}?${new_query}"

   HTTP::redirect ${new_uri}
    HTTP::uri  $new_uri;
    log local0. "new_query orig_query new_uri= $new_query $query $new_uri"       
   }
}
 pool displacement

set poolname [findclass ${database} inb_pool_array "," ] log local0. "poolname = $poolname" if { $poolname != "" } { persist cookie insert inb_cookie pool $poolname } }

8 Replies

  • 12.1 is the Long Term Support (LTS) code for F5. I would recommend using it if possible as this can be a bug. However, I haven't looked at your iRule and could be wrong. Were you able to diff the configuration before and after the code upgrade ? If there is no difference, definitely move to 12.1 before troubleshooting further.

     

  • upgraded to 12.1 hf 1. It did not fix the problem. I actually removed the irule all together and still had the problem with persistence. So i don't think its the irule. I've also tried oneconnect and checked the time on the unit. I've opened a case with f5 so hopefuly there will be an answer in the future. Thanks for any help.

     

  • Go into your cookie persistence profile and DISABLE the HTTPonly attribute. This became enabled by default in 12.0 and has been a thorn in my side in the past.

     

    • James_Price's avatar
      James_Price
      Icon for Nimbostratus rankNimbostratus

      I'll give the httponly attribute a shot but i have to wait for a downtime to test. It maybe a couple of weeks before I can find out for sure. Thanks

       

    • James_Price's avatar
      James_Price
      Icon for Nimbostratus rankNimbostratus

      Further analysis of the ltm log file showed that the servers members were constantly going up and down. I switched the monitor from http to gateway_icmp and the problem went away. Something strange about the http monitor. The origional problem of persistence is not a problem in seems to be with the monitor.

       

  • Go into your cookie persistence profile and DISABLE the HTTPonly attribute. This became enabled by default in 12.0 and has been a thorn in my side in the past.

     

    • James_Price's avatar
      James_Price
      Icon for Nimbostratus rankNimbostratus

      I'll give the httponly attribute a shot but i have to wait for a downtime to test. It maybe a couple of weeks before I can find out for sure. Thanks

       

    • James_Price's avatar
      James_Price
      Icon for Nimbostratus rankNimbostratus

      Further analysis of the ltm log file showed that the servers members were constantly going up and down. I switched the monitor from http to gateway_icmp and the problem went away. Something strange about the http monitor. The origional problem of persistence is not a problem in seems to be with the monitor.