For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

trx's avatar
Feb 28, 2011

IRules causing certain browsers to crash

Hello All,

Has anyone experienced having their IRules/Virtual Servers (HTTP/HTTPS) to crash in an browser?

 

 

 

Error in IE 8 OS XP:

 

 

 

Internet Explorer cannot display the webpage

 

 

 

Any thoughts anyone on why this can happen?

 

 

 

Thanks in advance.

 

 

 

Regards,

 

TRX

 

4 Replies

  • Crashing a browser is one thing, Giving a "cannot display page" error is another.

     

     

    Have you done a packet capture? Is the client receiving a RST from the Server (through the LTM)?
  • Sorry, I mean to say "error". Here is what I got from the logs:

     

     

    HTTP_REQUEST - Operation not supported. Multiple redirect/respond invocations not allowed line 137 invoked from within HTTP::respond 301 Location [string map {/portal/site } [HTTP::uri]]

     

     

     

    We are doing URL masking so it's kind of hard to NOT have multiple redirects. Any thoughts something else to try to prevent this?

     

    I continue to do some packet sniffing in the mean time.

     

     

     

    Regards,

     

    TRX

     

  • Without knowing the full rule, it's a bit difficult. Can you post an anonymized version of your HTTP_REQUEST event and what you're trying to accomplish?
  • Hello ,

    I think it was a combination of too many 301 redirects and where the "return" syntax was placed in the code.

     

     

     

    ex)

     

    HTTP_REQUEST {

     

    .....................

     

    if { ([string tolower [HTTP::uri]] contains "site_picker") or

     

    ([string tolower [HTTP::uri]] contains "create_profile") } {

     

    if user does NOT have access to the site, set the portal cookie flag to redirect

     

    if it exist

     

    if { ([HTTP::cookie exists $::portalCookie]) } {

     

    set ::portalExist 1

     

    }

     

    return

     

    } elseif { ([HTTP::uri] contains "/solutioncenter") } {

     

    set global variable flag for any old solutioncenter URL to 1

     

    and replace site names

     

    set ::SC_Flag 1

     

    HTTP::respond 301 Location [string map {"/solutioncenter" "/erp"} "[HTTP::uri]"]

     

    return

     

    } elseif { ([HTTP::uri] contains "+") or ([HTTP::uri] contains "action.process") } {

     

    Allow VCM URLs and login actions to go through

     

    return

     

     

    }

     

    ..............

     

    }

     

     

     

    The issue seemed occur when their was ONLY 1 return syntax at the very bottom of the "HTTP_REQUEST" function.

     

    I would think it would NOT matter, but from testing, it seems to be case. Any thoughts?

     

     

     

    Regards,

     

    TRX