Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
1.5.0, 1.6.0, 1.7.1
Description
When sending a DELETE request to a node in the cluster, the cluster coordinator attempts to replicate the request to all nodes in the cluster before committing it (two phase commit). According to RFC 7231, a DELETE request may have a body, but the body has no defined purpose:
A payload within a DELETE request message has no defined semantics; sending a payload body on a DELETE request might cause some existing implementations to reject the request.
The cluster request replication does not expect a request body when a DELETE request is received, so when it replicates the request to other nodes, it does not include the body, if present. However, the Content-Length header is forwarded in tact, and if this header contains a non-zero length, the other nodes will wait to receive the expected body. This can cause request time outs.
The solution is to intercept DELETE requests with a non-zero Content-Length header and overwrite that value to 0.
Attachments
Issue Links
- is duplicated by
-
NIFI-5628 Verify content length on replicated requests
- Resolved