From: "naruse (Yui NARUSE)" Date: 2013-06-16T00:48:06+09:00 Subject: [ruby-core:55499] [ruby-trunk - Bug #8182] XMLRPC request fails with "Wrong size. Was 31564, should be 1501" Issue #8182 has been updated by naruse (Yui NARUSE). duerst (Martin D��rst) wrote: > Checking Content-Length can help detect cases where the connection is > closed prematurely. I'm not sure how important this is in the > application where the error was discovered, but it's well known as a > problem in HTTP in general that premature closed connections are > difficult to detect. By default Net::HTTP#read wait to read content of the size which is specified with CONTENT_LENGTH, or chunked encoding. Therefore such situation does not exist. ---------------------------------------- Bug #8182: XMLRPC request fails with "Wrong size. Was 31564, should be 1501" https://bugs.ruby-lang.org/issues/8182#change-39947 Author: tsagadar (Marcel Mueller) Status: Assigned Priority: High Assignee: naruse (Yui NARUSE) 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/