From: "kou (Kouhei Sutou)" Date: 2013-06-13T00:24:03+09:00 Subject: [ruby-core:55462] [ruby-trunk - Bug #8182] XMLRPC request fails with "Wrong size. Was 31564, should be 1501" Issue #8182 has been updated by kou (Kouhei Sutou). drbrain (Eric Hodel) wrote: > This patch updates the 308 patch to update the Content-Length in Response instead of Inflater and fixes the variable name ("deflated length" is the original value, but only when deflate-encoded). It also adds documentation describing when the Content-Length will be changed so the user can test properly. I think that we should delete Content-Length between deleting Content-Encoding and yielding the first chunk when both Content-Encoding and Content-Length are specified. I think the following HERE is a good location if clen # HERE @socket.read clen, dest, true # ignore EOF return end but we don't have information whether Content-Encoding is handled at the location... I don't like the following code because the code ignores abstraction by inflater. if clen self.delete "content-length" is @socket.is_a?(Inflater) @socket.read clen, dest, true # ignore EOF return end Umm... ---------------------------------------- Bug #8182: XMLRPC request fails with "Wrong size. Was 31564, should be 1501" https://bugs.ruby-lang.org/issues/8182#change-39892 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/