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

winston_85158's avatar
winston_85158
Icon for Nimbostratus rankNimbostratus
Dec 22, 2014

STREAM profiles & iRule lead to http_process_state_prepend - Invalid action

Hi,

I am trying to use STREAM profiles. I attached the default (empty) STREAM profile to my virtual server which also has an HTTP profile attached. Next I created the following simple iRule:

when HTTP_REQUEST {  
  STREAM::expression "@foo@bar@" 
  STREAM::enable  
}

The result is that for every request I get the error in the LTM logs:

http_process_state_prepend - Invalid action

Also on the backend the Tomcat server thinks it is getting two request:

POST /someurl 200

null null 400

The first request is handled fine (client receives the response). The second 'request' it cannot parse (hence the nulls for both method and URI). I am getting similar results with Jetty as backend.

Next I tried without irule and with the replacement in the profile but this leads to the same result.

I must be doing wrong something pretty obvious, but no clue what. I suspect it is related to chunking of the request but documentation suggest that from 11.4 on this is handled automagically (my LTM is running on version 11.5.1).

Any suggestions?

Rgds,

Winston

2 Replies

  • shaggy's avatar
    shaggy
    Icon for Nimbostratus rankNimbostratus
    what is chunking set to in the http profile that you're using?
  • Thanks for the tip.

     

    The HTTP profile was the default one. It had request chunking set to preserve. Setting it to selective resolved the issue.

     

    SOL8115 suggest that this is not needed for the version I am running:

     

    "Starting in BIG-IP 11.4.0, the BIG-IP system automatically performs request chunking when a Stream profile and an HTTP profile are applied to the same virtual server."

     

    In any case it works now. Thanks again.