streamalert icon indicating copy to clipboard operation
streamalert copied to clipboard

[bug] slack access app - ChunkedEncodingError, connection reset by peer

Open ryandeivert opened this issue 7 years ago • 3 comments

Background

Traceback:

("Connection broken: error(104, 'Connection reset by peer')", error(104, 'Connection reset by peer')): ChunkedEncodingError
Traceback (most recent call last):
File "/var/task/stream_alert/apps/main.py", line 30, in handler
StreamAlertApp.get_app(event['app_type'])(event, context).gather()
File "/var/task/stream_alert/apps/app_base.py", line 379, in gather
while (((self._gather() * self._POLL_BUFFER_MULTIPLIER) + self._sleep_seconds()) <
File "/var/task/stream_alert/apps/app_base.py", line 38, in _wrapper
func(*args, **kwargs)
File "/var/task/stream_alert/apps/app_base.py", line 348, in _gather
logs = self._gather_logs()
File "/var/task/stream_alert/apps/_apps/slack.py", line 112, in _gather_logs
success, response = self._make_post_request(url, headers, data, False)
File "/var/task/stream_alert/apps/app_base.py", line 54, in _wrapper
return func(*args, **kwargs)
File "/var/task/stream_alert/apps/app_base.py", line 331, in _make_post_request
data=data, timeout=self._DEFAULT_REQUEST_TIMEOUT)
File "/var/task/requests/api.py", line 112, in post
return request('post', url, data=data, json=json, **kwargs)
File "/var/task/requests/api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "/var/task/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/var/task/requests/sessions.py", line 658, in send
r.content
File "/var/task/requests/models.py", line 823, in content
self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes()
File "/var/task/requests/models.py", line 748, in generate
raise ChunkedEncodingError(e)
ChunkedEncodingError: ("Connection broken: error(104, 'Connection reset by peer')", error(104, 'Connection reset by peer'))

Steps to Reproduce

N/A

Desired Change

Decide if this case should be handled gracefully. If not, close this issue out as won't fix.

ryandeivert avatar Sep 17 '18 19:09 ryandeivert

this error has not occurred since changes to boto3 packaging in v2.1.0. we will continue to monitor for future occurrences and re-open if necessary.

ryandeivert avatar Dec 18 '18 00:12 ryandeivert

ChunkedEncodingError is back 😒 I have observed this error few time from different StreamAlert Apps.

[ERROR] ChunkedEncodingError: ("Connection broken: ConnectionResetError(104, 'Connection reset by peer')", ConnectionResetError(104, 'Connection reset by peer'))
Traceback (most recent call last):
  File "/var/task/streamalert/apps/main.py", line 30, in handler
    StreamAlertApp.get_app(event['app_type'])(event, context).gather()
  File "/var/task/streamalert/apps/app_base.py", line 395, in gather
    while (((self._gather() * self._POLL_BUFFER_MULTIPLIER) + self._sleep_seconds()) <
  File "/var/task/streamalert/apps/app_base.py", line 42, in _wrapper
    func(*args, **kwargs)
  File "/var/task/streamalert/apps/app_base.py", line 364, in _gather
    logs = self._gather_logs()
  File "/var/task/streamalert/apps/_apps/slack.py", line 115, in _gather_logs
    success, response = self._make_post_request(url, headers, data, False)
  File "/var/task/streamalert/apps/app_base.py", line 58, in _wrapper
    return func(*args, **kwargs)
  File "/var/task/streamalert/apps/app_base.py", line 339, in _make_post_request
    data=data, timeout=self._DEFAULT_REQUEST_TIMEOUT)
  File "/var/task/requests/api.py", line 116, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/var/task/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/var/task/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/var/task/requests/sessions.py", line 686, in send
    r.content
  File "/var/task/requests/models.py", line 828, in content
    self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
  File "/var/task/requests/models.py", line 753, in generate
    raise ChunkedEncodingError(e)
[ERROR] ChunkedEncodingError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read))
Traceback (most recent call last):
  File "/var/task/streamalert/apps/main.py", line 30, in handler
    StreamAlertApp.get_app(event['app_type'])(event, context).gather()
  File "/var/task/streamalert/apps/app_base.py", line 395, in gather
    while (((self._gather() * self._POLL_BUFFER_MULTIPLIER) + self._sleep_seconds()) <
  File "/var/task/streamalert/apps/app_base.py", line 42, in _wrapper
    func(*args, **kwargs)
  File "/var/task/streamalert/apps/app_base.py", line 364, in _gather
    logs = self._gather_logs()
  File "/var/task/streamalert/apps/_apps/box.py", line 165, in _gather_logs
    result, response = self._make_request()
  File "/var/task/streamalert/apps/app_base.py", line 58, in _wrapper
    return func(*args, **kwargs)
  File "/var/task/streamalert/apps/_apps/box.py", line 147, in _make_request
    return _perform_request()
  File "/var/task/streamalert/apps/_apps/box.py", line 128, in _perform_request
    timeout=self._DEFAULT_REQUEST_TIMEOUT
  File "/var/task/boxsdk/util/api_call_decorator.py", line 71, in call
    return method(*args, **kwargs)
  File "/var/task/boxsdk/client/client.py", line 1320, in make_request
    return self._session.request(method, url, **kwargs)
  File "/var/task/boxsdk/session/session.py", line 157, in request
    response = self._prepare_and_send_request(method, url, **kwargs)
  File "/var/task/boxsdk/session/session.py", line 388, in _prepare_and_send_request
    network_response = self._send_request(request, **kwargs)
  File "/var/task/boxsdk/session/session.py", line 608, in _send_request
    return super(AuthorizedSession, self)._send_request(request, **kwargs)
  File "/var/task/boxsdk/session/session.py", line 508, in _send_request
    **request_kwargs
  File "/var/task/boxsdk/network/default_network.py", line 43, in request
    request_response=self._session.request(method, url, **kwargs),
  File "/var/task/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/var/task/requests/sessions.py", line 686, in send
    r.content
  File "/var/task/requests/models.py", line 828, in content
    self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
  File "/var/task/requests/models.py", line 753, in generate
    raise ChunkedEncodingError(e)

chunyong-lin avatar Oct 22 '19 20:10 chunyong-lin

still seeing this as of 2020-03-12

ryandeivert avatar Mar 12 '20 18:03 ryandeivert