Bug ID 631862: Stream is not finalized when OWS response has Transfer-Encoding header with zero-size chunk

Last Modified: Apr 28, 2025

Affected Product(s):
BIG-IP LTM(all modules)

Known Affected Versions:
11.6.1, 11.6.1 HF1, 11.6.1 HF2, 11.6.2, 11.6.2 HF1, 11.6.3, 11.6.3.1, 11.6.3.2, 11.6.3.3, 11.6.3.4, 11.6.4, 11.6.5, 11.6.5.1, 11.6.5.2, 11.6.5.3, 12.0.0, 12.0.0 HF1, 12.0.0 HF2, 12.0.0 HF3, 12.0.0 HF4, 12.1.0, 12.1.0 HF1, 12.1.0 HF2, 12.1.1, 12.1.1 HF1, 12.1.1 HF2, 12.1.2

Fixed In:
13.1.0, 13.0.1, 12.1.2 HF1

Opened: Dec 05, 2016

Severity: 3-Major

Related Article: K32107573

Symptoms

When OWS sends a chunked response and the only chunk has a zero size, HTTP2 profile receives neither the response's body nor indication that the response has zero size.

Impact

On a stream with such response, BIG-IP doesn't generate a frame which would have END_STREAM flag. Some browsers may not handle the response properly. For example, a redirect may not be performed when the stream is not finalized. It results in incorrect page rendering on a client.

Conditions

A virtual server must have HTTP2 profile, and OWS must serve a response with Transfer-Encoding: chunked and a zero size chunk (empty body).

Workaround

Use following iRule for broken URLs: when HTTP_RESPONSE { if {[HTTP::header exists "Transfer-Encoding"] && [HTTP::status] eq 301} { HTTP::respond 301 -version 1.1 noserver Location [HTTP::header Location] Date [HTTP::header Date] Content-Type [HTTP::header Content-Type] Connection [HTTP::header Connection] } } A condition may be changed to narrow the iRule for specific URLs. HTTP::respond may be modified to include other important headers and serve a proper status code.

Fix Information

When OWS serves Transfer-Encoding chunked with zero size chuck, BIG-IP properly handles the response and sends END_STREAM flag finalizing the response.

Behavior Change

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips