The inner Hg WSGI machinery uses
for most bundle-related operations. This is in general masked by
hg serve command (not sure it's 100%), which is not suited
for production ops.
Gunicorn, and probably other production-grade WSGI servers just honor the chunked encoding.
However, it turns out that the way we use HTTParty and/or Rails
base classes has the effect of "dechunking" the body,
without clearing the header, making the response invalid.
In normal GitLab operation,
the inner layer of reverse proxy simply truncates the body.
The present change is just a workaround: it solves the invalidity of the response, instead of the true issue. Instead, we should stream the Hg response in its native chunked form, something like ActionController::Live (https://api.rubyonrails.org/classes/ActionController/Live.html)
Whether that is an effect of HTTParty forcing the whole body read or of send_data or how they interact remains to be found.
--HG-- branch : heptapod