Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Webhook Broken Pipe after connection reset, kills dispatcher #970

@yusufk

Description

@yusufk

Steps to reproduce

Standard Webhook with updater and dispatcher:

updater = Updater(TOKEN) PORT = int(os.environ.get('PORT', '5000')) # add handlers 
updater.start_webhook(listen="0.0.0.0", port=PORT, url_path=TOKEN) 
updater.bot.set_webhook("https://home.co.za/" + TOKEN) 
dp = updater.dispatcher dp.add_error_handler(error) 
updater.idle()

Expected behaviour

Bot should run and remain responsive

Actual behaviour

It runs, but after a few hours becomes unresponsive.

Configuration

Operating System:
Linux Cappucino 4.4.0-104-generic #127-Ubuntu SMP Mon Dec 11 12:16:50 UTC 2017 i686 athlon i686 GNU/Linux

Version of Python, python-telegram-bot & dependencies:

python-telegram-bot 9.0.0
certifi 2017.11.05
future 0.16.0
Python 3.5.2 (default, Nov 23 2017, 16:37:01)  [GCC 5.4.0 20160609]

Logs

2018-01-10 03:54:56,480 - telegram.ext.updater - ERROR - unhandled exception
Traceback (most recent call last):
  File "/usr/lib/python3.5/socketserver.py", line 313, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/lib/python3.5/socketserver.py", line 341, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python3.5/socketserver.py", line 354, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/local/lib/python3.5/dist-packages/telegram/utils/webhookhandler.py", line 62, in __init__
    super(WebhookHandler, self).__init__(request, client_address, server)
  File "/usr/lib/python3.5/socketserver.py", line 681, in __init__
    self.handle()
  File "/usr/lib/python3.5/http/server.py", line 422, in handle
    self.handle_one_request()
  File "/usr/lib/python3.5/http/server.py", line 390, in handle_one_request
    self.raw_requestline = self.rfile.readline(65537)
  File "/usr/lib/python3.5/socket.py", line 575, in readinto
    return self._sock.recv_into(b)
ConnectionResetError: [Errno 104] Connection reset by peer

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/telegram/ext/updater.py", line 149, in _thread_wrapper
    target(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/telegram/ext/updater.py", line 353, in _start_webhook
    self.httpd.serve_forever(poll_interval=1)
  File "/usr/local/lib/python3.5/dist-packages/telegram/utils/webhookhandler.py", line 41, in serve_forever
    super(WebhookServer, self).serve_forever(poll_interval)
  File "/usr/lib/python3.5/socketserver.py", line 234, in serve_forever
    self._handle_request_noblock()
  File "/usr/lib/python3.5/socketserver.py", line 315, in _handle_request_noblock
    self.handle_error(request, client_address)
  File "/usr/lib/python3.5/socketserver.py", line 371, in handle_error
    print('Exception happened during processing of request from', end=' ')
BrokenPipeError: [Errno 32] Broken pipe
Exception in thread updater:
Traceback (most recent call last):
  File "/usr/lib/python3.5/socketserver.py", line 313, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/lib/python3.5/socketserver.py", line 341, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python3.5/socketserver.py", line 354, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/local/lib/python3.5/dist-packages/telegram/utils/webhookhandler.py", line 62, in __init__
    super(WebhookHandler, self).__init__(request, client_address, server)
  File "/usr/lib/python3.5/socketserver.py", line 681, in __init__
    self.handle()
  File "/usr/lib/python3.5/http/server.py", line 422, in handle
    self.handle_one_request()
  File "/usr/lib/python3.5/http/server.py", line 390, in handle_one_request
    self.raw_requestline = self.rfile.readline(65537)
  File "/usr/lib/python3.5/socket.py", line 575, in readinto
    return self._sock.recv_into(b)
ConnectionResetError: [Errno 104] Connection reset by peer

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.5/threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.5/dist-packages/telegram/ext/updater.py", line 149, in _thread_wrapper
    target(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/telegram/ext/updater.py", line 353, in _start_webhook
    self.httpd.serve_forever(poll_interval=1)
  File "/usr/local/lib/python3.5/dist-packages/telegram/utils/webhookhandler.py", line 41, in serve_forever
    super(WebhookServer, self).serve_forever(poll_interval)
  File "/usr/lib/python3.5/socketserver.py", line 234, in serve_forever
    self._handle_request_noblock()
  File "/usr/lib/python3.5/socketserver.py", line 315, in _handle_request_noblock
    self.handle_error(request, client_address)
  File "/usr/lib/python3.5/socketserver.py", line 371, in handle_error
    print('Exception happened during processing of request from', end=' ')
BrokenPipeError: [Errno 32] Broken pipe

2018-01-10 03:54:56,601 - telegram.ext.dispatcher - CRITICAL - stopping due to exception in another thread
2018-01-10 03:54:56,601 - telegram.ext.dispatcher - DEBUG - Dispatcher thread stopped
2018-01-10 03:54:56,601 - telegram.ext.updater - DEBUG - dispatcher - ended

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions