Issue #8182 has been updated by Yui NARUSE.

Status changed from Assigned to Closed
% Done changed from 0 to 100

Applied in changeset r45529.

----------
* lib/xmlrpc/client.rb (do_rpc): don't check body length.
  If HTTP content-encoding is used, the length may be different.
  [Bug #8182] [ruby-core:53811]

----------------------------------------
Bug #8182: XMLRPC request fails with "Wrong size. Was 31564, should be 1501"
https://bugs.ruby-lang.org/issues/8182#change-46097

* Author: Marcel Mueller
* Status: Closed
* Priority: Normal
* Assignee: Kouhei Sutou
* Category: lib
* Target version: current: 2.2.0
* ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
* Backport: 1.9.3: DONTNEED, 2.0.0: REQUIRED, 2.1: REQUIRED
----------------------------------------
Since upgrading to Ruby 2.0.0p0 we can no longer use MailChimp through the Hominid gem. Hominid relies on the Ruby XMLRPC client to access MailChimp.

Debugging the issues revealed the following problem: net/http/response.rb transparently deflates the response body, removes the "content-encoding" response header (response.rb:255), but does not adjust the "content-length" header accordingly. This makes xmlrpc/client.rb:506 raise the error, that the response body and the declared length in "content-length" does not match.

I propose a high priority for this issue for two reason:
- The problem should occur whenever Ruby XMLRPC is used to access a service that supports content encoding with "deflate", "gzip", or "x-gzip"
- I don't see a workaround to this problem that could be used


---Files--------------------------------
308.patch (3.37 KB)
net.http.bug8182.patch (2.98 KB)
xmlrpc_client.rb.bug8182.patch (903 Bytes)


-- 
https://bugs.ruby-lang.org/