From: "drbrain (Eric Hodel)" <drbrain@...7.net>
Date: 2013-06-12T08:46:05+09:00
Subject: [ruby-core:55449] [ruby-trunk - Bug #8182] XMLRPC request fails with "Wrong size. Was 31564, should be 1501"


Issue #8182 has been updated by drbrain (Eric Hodel).

File xmlrpc_client.rb.bug8182.patch added

Here is a possible patch that only checks Content-Length if the Content-Encoding was handled by Net::HTTP. Unfortunately I don't have an XMLRPC service available to test it against.
----------------------------------------
Bug #8182: XMLRPC request fails with "Wrong size. Was 31564, should be 1501"
https://bugs.ruby-lang.org/issues/8182#change-39872

Author: tsagadar (Marcel Mueller)
Status: Assigned
Priority: High
Assignee: kou (Kouhei Sutou)
Category: core
Target version: current: 2.1.0
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
Backport: 


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



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