Brocade ADX - HTTP packets dropped when using pipeling and CSW
When enabling CSW and running HTTP pipelining you may experience a breakdown in your HTTP session.
When enabling CSW on a Virtual Server pipelining is enabled on the designated port by default.
The issue occurs when a second GET request comes in before the first GET/POST answer is fully received from the server (this could include a single ACK still pending), then the ADX drops the second request silently. The client will keep retransmitting the second request and then finally give up after some time.
This issue is typically seen when using extremely long URI references.
To resolve this issue there are 2 options.
- Upgrade to 12.4.00d,
- Use the "reset-pipeline-request" command.
The "reset-pipeline-request" command (i.e “port http keep-alive reset-pipeline-request”) works around this issue by allowing the answer to the first request to complete (even if a second request comes in) and then resetting the connection. This in turn forces the client start a new connection for the second request.
Note : Should you enable 'port <port> keep-alive reset-pipeline-request' and then remove it using the command 'no port <port> no-keep-alive' (on the Virtual Server). You will need to ensure you re-enable keep-alive on the VIP using the command 'port <port> keep-alive'.