Skip to content

Gzipped 204 responses raises ContentEncodingError #609

Closed
@C4ptainCrunch

Description

When querying an HTTP endpoint that returns a 204 with a content-encoding: gzip, aiohttp raises a aiohttp.errors.ContentEncodingError: 400, message='deflate'.
(Note that aiohttp claims it's a error 400 but the server sends a 204 : 127.0.0.1 - - [30/Oct/2015 13:01:37] "POST / HTTP/1.1" 204 -)

I made a small repo with a minimal example : https://github.com/C4ptainCrunch/aiohttp-204-gzip-bug

Here is the full stacktrace :

content-encoding: gzip

Traceback (most recent call last):
  File "client.py", line 14, in <module>
    fetch(url)
  File "/usr/lib64/python3.4/asyncio/base_events.py", line 316, in run_until_complete
    return future.result()
  File "/usr/lib64/python3.4/asyncio/futures.py", line 275, in result
    raise self._exception
  File "/usr/lib64/python3.4/asyncio/tasks.py", line 236, in _step
    result = coro.send(value)
  File "client.py", line 11, in fetch
    return (yield from response.release())
  File "/home/C4/sandbox/aiohttp/ve3/lib64/python3.4/site-packages/aiohttp/client_reqrep.py", line 648, in release
    chunk = yield from content.readany()
  File "/home/C4/sandbox/aiohttp/ve3/lib64/python3.4/site-packages/aiohttp/streams.py", line 472, in wrapper
    result = yield from func(self, *args, **kw)
  File "/home/C4/sandbox/aiohttp/ve3/lib64/python3.4/site-packages/aiohttp/streams.py", line 535, in readany
    return (yield from super().readany())
  File "/home/C4/sandbox/aiohttp/ve3/lib64/python3.4/site-packages/aiohttp/streams.py", line 265, in readany
    raise self._exception
  File "/home/C4/sandbox/aiohttp/ve3/lib64/python3.4/site-packages/aiohttp/parsers.py", line 181, in set_parser
    next(p)
  File "/home/C4/sandbox/aiohttp/ve3/lib64/python3.4/site-packages/aiohttp/protocol.py", line 312, in __call__
    out.feed_eof()
  File "/home/C4/sandbox/aiohttp/ve3/lib64/python3.4/site-packages/aiohttp/protocol.py", line 386, in feed_eof
    raise errors.ContentEncodingError('deflate')
aiohttp.errors.ContentEncodingError: 400, message='deflate'

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions