Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

decompress resp.read() when resp.status is unknown #3

Open
karabasium opened this issue Nov 12, 2021 · 0 comments
Open

decompress resp.read() when resp.status is unknown #3

karabasium opened this issue Nov 12, 2021 · 0 comments

Comments

@karabasium
Copy link

karabasium commented Nov 12, 2021

when clickhouse returns an unknown error (code != 401 or 404) function return meaningless result. Something like:

'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

It occurs because code tries to print zipped error message. I suggest decompress the message to make it human readable.

Something like that (bold highlighted)

if resp.status == 404:
error_message = gzip.decompress(resp.read()).decode() if updated_settings['enable_http_compression'] == 1
else resp.read().decode()
raise ValueError(error_message)
elif resp.status == 401:
raise ConnectionRefusedError(resp.reason)
else:
if resp.status != 200:
raise NotImplementedError('Unknown Error: status: {0}, reason: {1}, message: {2}'.format(
resp.status, resp.reason, gzip.decompress(resp.read()).decode() if updated_settings['enable_http_compression'] == 1
else resp.read().decode()
) )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant