Rest api commits/diff returns malformed answer when gzip is turned off

XMLWordPrintable

    • Type: Bug
    • Resolution: Cannot Reproduce
    • Priority: Low
    • None
    • Affects Version/s: 3.11.3
    • Component/s: API - REST
    • None

      And if diff is quite big: ~1.3MB in our case.

      curl output:

      > curl -v --max-redirs 0 -H "Accept-Encoding: identity" "http://server-url:7990/rest/api/1.0/projects/{PROJECT}/repos/{REPO}/commits/3bbaa805a14ff9d7d8933aadad4799c8e05d4fc6/diff?since=f4e2573f54b2c8f2ecd73211dd145785e9a986b6%5E2&contextLines=0" | wc
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
        0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 141.8.133.90...
      * Connected to {SERVER_URL} (141.8.133.90) port 7990 (#0)
      ...
      > User-Agent: curl/7.43.0
      > Accept: */*
      > Accept-Encoding: identity
      >
      < HTTP/1.1 200 OK
      < Server: Apache-Coyote/1.1
      < X-AREQUESTID: @5Y78HMx902x11941714x9
      < X-ASEN: SEN-2521885
      < Cache-Control: no-cache, no-transform
      < Vary: X-AUSERNAME,Accept-Encoding
      < Transfer-Encoding: chunked
      < Content-Type: application/json;charset=UTF-8
      < X-Content-Type-Options: nosniff
      < Date: Fri, 13 Nov 2015 12:02:26 GMT
      <
        0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0{ [346 bytes data]
      100  218k    0  218k    0     0   177k      0 --:--:--  0:00:01 --:--:--  177k* Malformed encoding found in chunked-encoding
      * Closing connection 0
      curl: (56) Malformed encoding found in chunked-encoding
             1   22886 1379065
      
      

      python.requests:

      Traceback (most recent call last):
        File "1.py", line 13, in <module>
          content = requests.get(URL, headers={'Accept-Encoding': 'identity'}).text
        File "/Users/yoprst/.venv/lib/python2.7/site-packages/requests/api.py", line 69, in get
          return request('get', url, params=params, **kwargs)
        File "/Users/yoprst/.venv/lib/python2.7/site-packages/requests/api.py", line 50, in request
          response = session.request(method=method, url=url, **kwargs)
        File "/Users/yoprst/.venv/lib/python2.7/site-packages/requests/sessions.py", line 465, in request
          resp = self.send(prep, **send_kwargs)
        File "/Users/yoprst/.venv/lib/python2.7/site-packages/requests/sessions.py", line 605, in send
          r.content
        File "/Users/yoprst/.venv/lib/python2.7/site-packages/requests/models.py", line 750, in content
          self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes()
        File "/Users/yoprst/.venv/lib/python2.7/site-packages/requests/models.py", line 673, in generate
          for chunk in self.raw.stream(chunk_size, decode_content=True):
        File "/Users/yoprst/.venv/lib/python2.7/site-packages/requests/packages/urllib3/response.py", line 303, in stream
          for line in self.read_chunked(amt, decode_content=decode_content):
        File "/Users/yoprst/.venv/lib/python2.7/site-packages/requests/packages/urllib3/response.py", line 447, in read_chunked
          self._update_chunk_length()
        File "/Users/yoprst/.venv/lib/python2.7/site-packages/requests/packages/urllib3/response.py", line 401, in _update_chunk_length
          raise httplib.IncompleteRead(line)
      httplib.IncompleteRead: IncompleteRead(6 bytes read)
      
      

      UPD: curl sees malformed answer even without Accept-Encoding specified. Python-requests successfully reads 1381931 in this case (it supports gzip compression).

            Assignee:
            Unassigned
            Reporter:
            Slava Yozhkin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: