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
[BUG] Exception while shutdown #3893
Comments
Hi. The issue is very random. If I start the bot and after max 10 seconds I stop it sometime I got the exception and sometime no. |
|
This is the test code: #!/usr/bin/env python3
from telegram import Update, ForceReply
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes, filters, MessageHandler
async def hello(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text(f'Hello {update.effective_user.first_name}')
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
"""Send a message when the command /start is issued."""
user = update.effective_user
await update.message.reply_html(
rf"Hi {user.mention_html()}!",
reply_markup=ForceReply(selective=True),
)
async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
"""Send a message when the command /help is issued."""
await update.message.reply_text("Help!")
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
"""Echo the user message."""
await update.message.reply_text(update.message.text)
app = ApplicationBuilder() \
.token("XXXXXXXXXXXXXXXXXXX") \
.read_timeout(60) \
.get_updates_read_timeout(60) \
.build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("hello", hello))
app.add_handler(CommandHandler("help", help_command))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
app.run_polling() 60 seconds timeout, some tests with time, just to understand that the timeout is never reached. In my tests you can see also the difference between SIGTERM and SIGINT. Nothing should change, because they are simple signals all managed in the same way but you can see some differences ec2-user@server 08:36:14 ~/test$
ec2-user@server 08:36:14 ~/test$
ec2-user@server 08:36:14 ~/test$
ec2-user@server 08:36:14 ~/test$
ec2-user@server 08:36:14 ~/test$
ec2-user@server 08:36:14 ~/test$./bot2.py
^CTraceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/streams/tls.py", line 133, in _call_sslobject_method
result = func(*args)
File "/usr/lib64/python3.9/ssl.py", line 889, in read
v = self._sslobj.read(len)
ssl.SSLWantReadError: The operation did not complete (read) (_ssl.c:2633)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/_core/_tasks.py", line 115, in fail_after
yield cancel_scope
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 34, in read
return await self._stream.receive(max_bytes=max_bytes)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/streams/tls.py", line 198, in receive
data = await self._call_sslobject_method(self._ssl_object.read, max_bytes)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/streams/tls.py", line 140, in _call_sslobject_method
data = await self.transport_stream.receive()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 1103, in receive
await self._protocol.read_event.wait()
File "/usr/lib64/python3.9/asyncio/locks.py", line 226, in wait
await fut
asyncio.exceptions.CancelledError: Cancelled by cancel scope 7f26f0563370
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 36, in read
return b""
File "/usr/lib64/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/_core/_tasks.py", line 118, in fail_after
raise TimeoutError
TimeoutError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions
yield
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 262, in handle_async_request
raise exc
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 245, in handle_async_request
response = await connection.handle_async_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/connection.py", line 96, in handle_async_request
return await self._connection.handle_async_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 121, in handle_async_request
raise exc
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 99, in handle_async_request
) = await self._receive_response_headers(**kwargs)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 164, in _receive_response_headers
event = await self._receive_event(timeout=timeout)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 200, in _receive_event
data = await self._network_stream.read(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 36, in read
return b""
File "/usr/lib64/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ReadTimeout
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_httpxrequest.py", line 219, in do_request
res = await self._client.request(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1530, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1617, in send
response = await self._send_handling_auth(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1645, in _send_handling_auth
response = await self._send_handling_redirects(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1682, in _send_handling_redirects
response = await self._send_single_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1719, in _send_single_request
response = await transport.handle_async_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "/usr/lib64/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ReadTimeout
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ec2-user/test/./bot2.py", line 38, in <module>
app.run_polling()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py", line 765, in run_polling
return self.__run(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py", line 963, in __run
loop.run_until_complete(self.updater.stop()) # type: ignore[union-attr]
File "/usr/lib64/python3.9/asyncio/base_events.py", line 647, in run_until_complete
return future.result()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_updater.py", line 752, in stop
await self._stop_polling()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_updater.py", line 777, in _stop_polling
await self.__polling_cleanup_cb()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_updater.py", line 381, in _get_updates_cleanup
await self.bot.get_updates(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_extbot.py", line 553, in get_updates
updates = await super().get_updates(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 394, in decorator
result = await func(self, *args, **kwargs) # skipcq: PYL-E1102
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 3542, in get_updates
await self._post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 482, in _post
return await self._do_post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_extbot.py", line 335, in _do_post
return await super()._do_post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 510, in _do_post
return await request.post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_baserequest.py", line 168, in post
result = await self._request_wrapper(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_baserequest.py", line 288, in _request_wrapper
raise exc
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_baserequest.py", line 278, in _request_wrapper
code, payload = await self.do_request(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_httpxrequest.py", line 236, in do_request
raise TimedOut from err
telegram.error.TimedOut: Timed out
Task was destroyed but it is pending!
task: <Task pending name='Application:6638977760:update_fetcher' coro=<Application._update_fetcher() running at /home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py:1101> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7f26f0552280>()]>>
Exception ignored in: <coroutine object Application._update_fetcher at 0x7f26f0f8c240>
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py", line 1101, in _update_fetcher
File "/usr/lib64/python3.9/asyncio/queues.py", line 168, in get
File "/usr/lib64/python3.9/asyncio/base_events.py", line 751, in call_soon
File "/usr/lib64/python3.9/asyncio/base_events.py", line 515, in _check_closed
RuntimeError: Event loop is closed
ec2-user@server 08:36:33 ~/test$./bot2.py
^CTraceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/streams/tls.py", line 133, in _call_sslobject_method
result = func(*args)
File "/usr/lib64/python3.9/ssl.py", line 889, in read
v = self._sslobj.read(len)
ssl.SSLWantReadError: The operation did not complete (read) (_ssl.c:2633)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/_core/_tasks.py", line 115, in fail_after
yield cancel_scope
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 34, in read
return await self._stream.receive(max_bytes=max_bytes)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/streams/tls.py", line 198, in receive
data = await self._call_sslobject_method(self._ssl_object.read, max_bytes)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/streams/tls.py", line 140, in _call_sslobject_method
data = await self.transport_stream.receive()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 1103, in receive
await self._protocol.read_event.wait()
File "/usr/lib64/python3.9/asyncio/locks.py", line 226, in wait
await fut
asyncio.exceptions.CancelledError: Cancelled by cancel scope 7f898eb840d0
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 36, in read
return b""
File "/usr/lib64/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/_core/_tasks.py", line 118, in fail_after
raise TimeoutError
TimeoutError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions
yield
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 262, in handle_async_request
raise exc
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 245, in handle_async_request
response = await connection.handle_async_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/connection.py", line 96, in handle_async_request
return await self._connection.handle_async_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 121, in handle_async_request
raise exc
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 99, in handle_async_request
) = await self._receive_response_headers(**kwargs)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 164, in _receive_response_headers
event = await self._receive_event(timeout=timeout)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 200, in _receive_event
data = await self._network_stream.read(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 36, in read
return b""
File "/usr/lib64/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ReadTimeout
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_httpxrequest.py", line 219, in do_request
res = await self._client.request(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1530, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1617, in send
response = await self._send_handling_auth(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1645, in _send_handling_auth
response = await self._send_handling_redirects(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1682, in _send_handling_redirects
response = await self._send_single_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1719, in _send_single_request
response = await transport.handle_async_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "/usr/lib64/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ReadTimeout
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ec2-user/test/./bot2.py", line 38, in <module>
app.run_polling()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py", line 765, in run_polling
return self.__run(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py", line 963, in __run
loop.run_until_complete(self.updater.stop()) # type: ignore[union-attr]
File "/usr/lib64/python3.9/asyncio/base_events.py", line 647, in run_until_complete
return future.result()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_updater.py", line 752, in stop
await self._stop_polling()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_updater.py", line 777, in _stop_polling
await self.__polling_cleanup_cb()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_updater.py", line 381, in _get_updates_cleanup
await self.bot.get_updates(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_extbot.py", line 553, in get_updates
updates = await super().get_updates(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 394, in decorator
result = await func(self, *args, **kwargs) # skipcq: PYL-E1102
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 3542, in get_updates
await self._post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 482, in _post
return await self._do_post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_extbot.py", line 335, in _do_post
return await super()._do_post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 510, in _do_post
return await request.post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_baserequest.py", line 168, in post
result = await self._request_wrapper(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_baserequest.py", line 288, in _request_wrapper
raise exc
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_baserequest.py", line 278, in _request_wrapper
code, payload = await self.do_request(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_httpxrequest.py", line 236, in do_request
raise TimedOut from err
telegram.error.TimedOut: Timed out
Task was destroyed but it is pending!
task: <Task pending name='Application:6638977760:update_fetcher' coro=<Application._update_fetcher() running at /home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py:1101> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7f898ebf0280>()]>>
Exception ignored in: <coroutine object Application._update_fetcher at 0x7f898f62a240>
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py", line 1101, in _update_fetcher
File "/usr/lib64/python3.9/asyncio/queues.py", line 168, in get
File "/usr/lib64/python3.9/asyncio/base_events.py", line 751, in call_soon
File "/usr/lib64/python3.9/asyncio/base_events.py", line 515, in _check_closed
RuntimeError: Event loop is closed
ec2-user@server 08:37:02 ~/test$
---------------------------------------------------------------------------------------------------------
ec2-user@server 08:38:18 ~/test$
ec2-user@server 08:38:18 ~/test$
ec2-user@server 08:38:19 ~/test$
ec2-user@server 08:38:19 ~/test$
ec2-user@server 08:38:19 ~/test$./bot2.py &
[1] 80034
ec2-user@server 08:38:23 ~/test$kill 80034
ec2-user@server 08:38:31 ~/test$
[1]+ Done ./bot2.py
ec2-user@server 08:38:32 ~/test$
ec2-user@server 08:38:33 ~/test$./bot2.py &
[1] 80036
ec2-user@server 08:38:35 ~/test$
ec2-user@server 08:38:37 ~/test$
ec2-user@server 08:38:37 ~/test$
ec2-user@server 08:38:38 ~/test$
ec2-user@server 08:38:38 ~/test$kill 80036
ec2-user@server 08:38:44 ~/test$
[1]+ Done ./bot2.py
ec2-user@server 08:38:44 ~/test$
ec2-user@server 08:38:45 ~/test$
ec2-user@server 08:38:45 ~/test$./bot2.py &
[1] 80093
ec2-user@server 08:38:48 ~/test$
ec2-user@server 08:38:48 ~/test$
ec2-user@server 08:38:49 ~/test$kill 80093
ec2-user@server 08:39:00 ~/test$
ec2-user@server 08:39:01 ~/test$
ec2-user@server 08:39:01 ~/test$
ec2-user@server 08:39:02 ~/test$Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/streams/tls.py", line 133, in _call_sslobject_method
result = func(*args)
File "/usr/lib64/python3.9/ssl.py", line 889, in read
v = self._sslobj.read(len)
ssl.SSLWantReadError: The operation did not complete (read) (_ssl.c:2633)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/_core/_tasks.py", line 115, in fail_after
yield cancel_scope
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 34, in read
return await self._stream.receive(max_bytes=max_bytes)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/streams/tls.py", line 198, in receive
data = await self._call_sslobject_method(self._ssl_object.read, max_bytes)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/streams/tls.py", line 140, in _call_sslobject_method
data = await self.transport_stream.receive()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 1103, in receive
await self._protocol.read_event.wait()
File "/usr/lib64/python3.9/asyncio/locks.py", line 226, in wait
await fut
asyncio.exceptions.CancelledError: Cancelled by cancel scope 7f959fc23370
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 36, in read
return b""
File "/usr/lib64/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/_core/_tasks.py", line 118, in fail_after
raise TimeoutError
TimeoutError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions
yield
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 262, in handle_async_request
raise exc
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 245, in handle_async_request
response = await connection.handle_async_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/connection.py", line 96, in handle_async_request
return await self._connection.handle_async_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 121, in handle_async_request
raise exc
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 99, in handle_async_request
) = await self._receive_response_headers(**kwargs)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 164, in _receive_response_headers
event = await self._receive_event(timeout=timeout)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 200, in _receive_event
data = await self._network_stream.read(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 36, in read
return b""
File "/usr/lib64/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ReadTimeout
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_httpxrequest.py", line 219, in do_request
res = await self._client.request(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1530, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1617, in send
response = await self._send_handling_auth(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1645, in _send_handling_auth
response = await self._send_handling_redirects(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1682, in _send_handling_redirects
response = await self._send_single_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1719, in _send_single_request
response = await transport.handle_async_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "/usr/lib64/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ReadTimeout
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ec2-user/test/./bot2.py", line 38, in <module>
app.run_polling()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py", line 765, in run_polling
return self.__run(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py", line 963, in __run
loop.run_until_complete(self.updater.stop()) # type: ignore[union-attr]
File "/usr/lib64/python3.9/asyncio/base_events.py", line 647, in run_until_complete
return future.result()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_updater.py", line 752, in stop
await self._stop_polling()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_updater.py", line 777, in _stop_polling
await self.__polling_cleanup_cb()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_updater.py", line 381, in _get_updates_cleanup
await self.bot.get_updates(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_extbot.py", line 553, in get_updates
updates = await super().get_updates(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 394, in decorator
result = await func(self, *args, **kwargs) # skipcq: PYL-E1102
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 3542, in get_updates
await self._post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 482, in _post
return await self._do_post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_extbot.py", line 335, in _do_post
return await super()._do_post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 510, in _do_post
return await request.post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_baserequest.py", line 168, in post
result = await self._request_wrapper(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_baserequest.py", line 288, in _request_wrapper
raise exc
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_baserequest.py", line 278, in _request_wrapper
code, payload = await self.do_request(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_httpxrequest.py", line 236, in do_request
raise TimedOut from err
telegram.error.TimedOut: Timed out
Task was destroyed but it is pending!
task: <Task pending name='Application:6638977760:update_fetcher' coro=<Application._update_fetcher() running at /home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py:1101> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7f959fc12520>()]>>
Exception ignored in: <coroutine object Application._update_fetcher at 0x7f95a064c240>
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py", line 1101, in _update_fetcher
File "/usr/lib64/python3.9/asyncio/queues.py", line 168, in get
File "/usr/lib64/python3.9/asyncio/base_events.py", line 751, in call_soon
File "/usr/lib64/python3.9/asyncio/base_events.py", line 515, in _check_closed
RuntimeError: Event loop is closed
[1]+ Exit 1 ./bot2.py
ec2-user@server 08:39:03 ~/test$
ec2-user@server 08:39:06 ~/test$
----------------------------------------------------------------------------------------------------------------------------------
ec2-user@server 08:40:00 ~/test$
ec2-user@server 08:40:00 ~/test$
ec2-user@server 08:40:00 ~/test$
ec2-user@server 08:40:01 ~/test$./bot2.py &
[1] 80098
ec2-user@server 08:40:02 ~/test$
ec2-user@server 08:40:03 ~/test$
ec2-user@server 08:40:03 ~/test$
ec2-user@server 08:40:03 ~/test$
ec2-user@server 08:40:03 ~/test$fg
./bot2.py
^Cec2-user@server 08:40:06 ~/test$
ec2-user@server 08:40:07 ~/test$
ec2-user@server 08:40:07 ~/test$./bot2.py &
[1] 80100
ec2-user@server 08:40:09 ~/test$fg
./bot2.py
^CTraceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/streams/tls.py", line 133, in _call_sslobject_method
result = func(*args)
File "/usr/lib64/python3.9/ssl.py", line 889, in read
v = self._sslobj.read(len)
ssl.SSLWantReadError: The operation did not complete (read) (_ssl.c:2633)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/_core/_tasks.py", line 115, in fail_after
yield cancel_scope
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 34, in read
return await self._stream.receive(max_bytes=max_bytes)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/streams/tls.py", line 198, in receive
data = await self._call_sslobject_method(self._ssl_object.read, max_bytes)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/streams/tls.py", line 140, in _call_sslobject_method
data = await self.transport_stream.receive()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 1103, in receive
await self._protocol.read_event.wait()
File "/usr/lib64/python3.9/asyncio/locks.py", line 226, in wait
await fut
asyncio.exceptions.CancelledError: Cancelled by cancel scope 7f6253d94340
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 36, in read
return b""
File "/usr/lib64/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/anyio/_core/_tasks.py", line 118, in fail_after
raise TimeoutError
TimeoutError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 60, in map_httpcore_exceptions
yield
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 262, in handle_async_request
raise exc
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 245, in handle_async_request
response = await connection.handle_async_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/connection.py", line 96, in handle_async_request
return await self._connection.handle_async_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 121, in handle_async_request
raise exc
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 99, in handle_async_request
) = await self._receive_response_headers(**kwargs)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 164, in _receive_response_headers
event = await self._receive_event(timeout=timeout)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_async/http11.py", line 200, in _receive_event
data = await self._network_stream.read(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 36, in read
return b""
File "/usr/lib64/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ReadTimeout
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_httpxrequest.py", line 219, in do_request
res = await self._client.request(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1530, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1617, in send
response = await self._send_handling_auth(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1645, in _send_handling_auth
response = await self._send_handling_redirects(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1682, in _send_handling_redirects
response = await self._send_single_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_client.py", line 1719, in _send_single_request
response = await transport.handle_async_request(request)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 353, in handle_async_request
resp = await self._pool.handle_async_request(req)
File "/usr/lib64/python3.9/contextlib.py", line 137, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/httpx/_transports/default.py", line 77, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ReadTimeout
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ec2-user/test/./bot2.py", line 38, in <module>
app.run_polling()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py", line 765, in run_polling
return self.__run(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py", line 963, in __run
loop.run_until_complete(self.updater.stop()) # type: ignore[union-attr]
File "/usr/lib64/python3.9/asyncio/base_events.py", line 647, in run_until_complete
return future.result()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_updater.py", line 752, in stop
await self._stop_polling()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_updater.py", line 777, in _stop_polling
await self.__polling_cleanup_cb()
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_updater.py", line 381, in _get_updates_cleanup
await self.bot.get_updates(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_extbot.py", line 553, in get_updates
updates = await super().get_updates(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 394, in decorator
result = await func(self, *args, **kwargs) # skipcq: PYL-E1102
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 3542, in get_updates
await self._post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 482, in _post
return await self._do_post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_extbot.py", line 335, in _do_post
return await super()._do_post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/_bot.py", line 510, in _do_post
return await request.post(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_baserequest.py", line 168, in post
result = await self._request_wrapper(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_baserequest.py", line 288, in _request_wrapper
raise exc
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_baserequest.py", line 278, in _request_wrapper
code, payload = await self.do_request(
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/request/_httpxrequest.py", line 236, in do_request
raise TimedOut from err
telegram.error.TimedOut: Timed out
Task was destroyed but it is pending!
task: <Task pending name='Application:6638977760:update_fetcher' coro=<Application._update_fetcher() running at /home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py:1101> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7f6253d8b520>()]>>
Exception ignored in: <coroutine object Application._update_fetcher at 0x7f62547c5240>
Traceback (most recent call last):
File "/home/ec2-user/test/.python3/lib/python3.9/site-packages/telegram/ext/_application.py", line 1101, in _update_fetcher
File "/usr/lib64/python3.9/asyncio/queues.py", line 168, in get
File "/usr/lib64/python3.9/asyncio/base_events.py", line 751, in call_soon
File "/usr/lib64/python3.9/asyncio/base_events.py", line 515, in _check_closed
RuntimeError: Event loop is closed
ec2-user@server 08:40:14 ~/test$
ec2-user@server 08:40:16 ~/test$
ec2-user@server 08:40:16 ~/test$
----------------------------------------------------------------------------
ec2-user@server 08:42:39 ~/test$
ec2-user@server 08:42:39 ~/test$
ec2-user@server 08:42:39 ~/test$
ec2-user@server 08:42:39 ~/test$
ec2-user@server 08:42:39 ~/test$ kill 80162
ec2-user@server 08:42:44 ~/test$
[1]+ Done ./bot2.py
ec2-user@server 08:42:44 ~/test$
ec2-user@server 08:42:44 ~/test$
ec2-user@server 08:42:45 ~/test$
ec2-user@server 08:42:45 ~/test$ ./bot2.py &
[1] 80219
ec2-user@server 08:42:47 ~/test$
ec2-user@server 08:42:48 ~/test$
ec2-user@server 08:42:48 ~/test$
ec2-user@server 08:42:48 ~/test$ kill 80219
ec2-user@server 08:42:52 ~/test$
[1]+ Done ./bot2.py
ec2-user@server 08:42:52 ~/test$
ec2-user@server 08:42:53 ~/test$
ec2-user@server 08:42:53 ~/test$
ec2-user@server 08:42:53 ~/test$
ec2-user@server 08:42:54 ~/test$ ./bot2.py &
[1] 80221
ec2-user@server 08:42:55 ~/test$
ec2-user@server 08:42:56 ~/test$
ec2-user@server 08:42:56 ~/test$
ec2-user@server 08:42:56 ~/test$ kill 80221
ec2-user@server 08:43:01 ~/test$
[1]+ Done ./bot2.py
ec2-user@server 08:43:01 ~/test$
ec2-user@server 08:43:01 ~/test$
----------------------------------------------------------------------------
I never saw a timeout while the bot ran for 24 hours. |
I've also encountered this issue. It doesn't seem related to user-configurable timeouts because I've set all possible timeouts like this .get_updates_connect_timeout(30)
.get_updates_pool_timeout(30)
.get_updates_read_timeout(30)
.get_updates_write_timeout(30)
.connect_timeout(30)
.pool_timeout(30)
.read_timeout(30)
.write_timeout(30) and I'm still receiving the error around 3 seconds after pressing ctrl+c. This error seems new, I'm not encountering it with version |
I dug around in the code a bit and I found the issue:
This usually doesn't show at runtime, because due to long-polling the actual read-timeout is way longer. However, I do see a need to change interfaces here.
@Poolitzer @harshil21 would you agree? |
Your workaround
resolve my issue. |
Not sure I would like to deprecate the Bot arguments. Setting a higher timeout is one of the most changed settings, forcing people to either use application or pass their own request object just to change them isn't end user friendly imo |
There is a misunderstanding here: I don't want to remove any arguments from Actually, I had another thought on making the default behavior match the default read timeout of the get_updates_request: that is likely harder to realize than I first thought, because the
|
okay yes, I can see the argument removing, makes sense. I would probably go for decoupling with properties. |
Steps to Reproduce
Expected behaviour
Close the bot without exceptions
Actual behaviour
These exceptions is very similar to issue #1563 if I run the same code on python3.9 I got the exception described in #1563 while if I run on python3.11 sometime I got these exceptions:
I think depends when I start the shutdown. Something is wrong in shutdown routine.
Operating System
Linux
Version of Python, python-telegram-bot & dependencies
Relevant log output
Additional Context
Issue there is only on shutdown, is not a big problem, but is bad to see all those exceptions.
The text was updated successfully, but these errors were encountered: