errbot icon indicating copy to clipboard operation
errbot copied to clipboard

Error reading from Telegram updates stream

Open come-maiz opened this issue 7 years ago • 4 comments

In order to let us help you better, please fill out the following fields as best you can:

I am...

  • [X] Reporting a bug
  • [ ] Suggesting a new feature
  • [ ] Requesting help with running my bot
  • [ ] Requesting help writing plugins
  • [ ] Here about something else

I am running...

  • Errbot version: 5.2.0
  • OS version: Ubuntu cosmic
  • Python version: 3.6.7
  • Using a virtual environment: yes

Issue description

With the telegram backend, I'm constantly getting this error:

18:45:13 ERROR    errbot.backends.telegram  Error reading from Telegram updates stream:                                                            [361/32250]
Traceback (most recent call last):                                                                                                                            
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 4$
2, in _make_request                                                                                                                                           
    six.raise_from(e, None)                                                                                                                                   
  File "<string>", line 2, in raise_from                                                                                                                      
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 3$
8, in _make_request                                                                                                                                           
    httplib_response = conn.getresponse()                                                                                                                   
  File "/usr/lib/python3.6/http/client.py", line 1331, in getresponse                                                                                         
    response.begin()                                                                                                                                          
  File "/usr/lib/python3.6/http/client.py", line 297, in begin                                                                                              
    version, status, reason = self._read_status()                                                                                                             
  File "/usr/lib/python3.6/http/client.py", line 258, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.6/socket.py", line 586, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3.6/ssl.py", line 1012, in recv_into
    return self.read(nbytes, buffer)
  File "/usr/lib/python3.6/ssl.py", line 874, in read
    return self._sslobj.read(len, buffer)
  File "/usr/lib/python3.6/ssl.py", line 631, in read
    v = self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/utils/request.py", line 203, in _request_wrapper
    resp = self._con_pool.request(*args, **kwargs)
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/request.py", line 70, in re
quest
    **urlopen_kw)
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/request.py", line 148, in r
equest_encode_body
    return self.urlopen(method, url, **extra_kw)
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/poolmanager.py", line 244,
in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 66
6, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/util/retry.py", line 347, i
n increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/packages/six.py", line 686,
 in reraise
    raise value
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 61
7, in urlopen
    chunked=chunked)
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 40
5, in _make_request
    exc_cls=ReadTimeoutError)
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/vendor/ptb_urllib3/urllib3/connectionpool.py", line 32
1, in _raise_timeout
    raise exc_cls(*args)
telegram.vendor.ptb_urllib3.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.telegram.org', port=443): Read timed out. (read timeout=5.0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/errbot/backends/telegram_messenger.py", line 226, in serve_once
    for update in self.telegram.getUpdates(offset=offset, timeout=360):
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/bot.py", line 65, in decorator
    result = func(self, *args, **kwargs)
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/bot.py", line 1975, in get_updates
    result = self._request.post(url, data, timeout=float(read_latency) + float(timeout))
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/utils/request.py", line 309, in post
    headers={'Content-Type': 'application/json'})
  File "/home/ubuntu/workspace/jaquerespeis/faircoin-cvn-bot/.venv/lib/python3.6/site-packages/telegram/utils/request.py", line 205, in _request_wrapper
    raise TimedOut()
telegram.error.TimedOut: Timed out

Steps to reproduce

Just trigger any errbot with the telegram backend.

Additional info

I patched the telegram backed to call getUpdates without timeout, and it stopped happening.

come-maiz avatar Dec 12 '18 18:12 come-maiz

Do you have the latest version of the telegram library python-telegram-bot?

sijis avatar Dec 12 '18 20:12 sijis

Yup, I've just pip installed it.

come-maiz avatar Dec 13 '18 05:12 come-maiz

Having the same issue with errbot 5.2.0, 5.1.3, and the pre-release version 6.0.0.a0.

emesterhazy avatar Jan 02 '19 23:01 emesterhazy

having the issue, I have downgraded the telegram bot to 10.1.0 and is working fine.

Reference https://github.com/python-telegram-bot/python-telegram-bot/issues/1323

am1ru1 avatar Jan 30 '19 17:01 am1ru1

Closing, as it's an old issue and there's been multiple updates since.

There seems to also be a workaround in the noted version.

sijis avatar Jan 05 '24 17:01 sijis