nlef / moonraker-telegram-bot

Telegram bot to interact with Moonraker (Klipper Web API Server)
Creative Commons Zero v1.0 Universal
251 stars 65 forks source link

[Bug]: High CPU Usage and Crashes with Moonraker Telegram Bot on Raspberry Pi Zero 2W When Unconfigured #323

Closed alber70g closed 2 months ago

alber70g commented 2 months ago

What happened and in what context?

I installed the telegram bot via KIAUH. This was after I used my printer for a few months and dozens of prints.

I had to do a clean install of my printer due to incorrect shutdown issues. But this is besides the point

When I installed the Telegram Bot on my freshly installed printer, updated all services and recovered my backups, I didn't yet setup the Telegram bot as I had to make a print.

I'm using a Raspberry Pi Zero 2W, which has worked flawelessly with input-shaping and enable_object_processing: True for use with KAMP.

However, since installing the Telegram Bot I saw peridodically spikes of 40-60% CPU usage. I've deducted that there's one service that causes this, which is the moonraker-telegram-bot.service.

I was of the assumption that this bot, when not configured, wouldn't do much and would leave the cpu mostly alone.

What can be done to still run the Telegram Bot on a low power, low performance device like the Pi Zero 2W?

I'm not running any webcam, disabled crowsnest, so video or imaging is not necessary to be turned on.

Also, it would be nice to have the service not use high CPU when it's not even configured yet

Anyway, I'm a software engineer myself, with some pointers in the right direction, I could help you figure out where this performance problem lies.

NOTE: I see that it crashes when the token isn't set. Maybe that's everything that needs to be fixed? 😇

If needed, paste the relevant bot log contents here.

No response

If needed, paste the relevant bot journal contents here.

-- Journal begins at Sun 2023-06-18 16:55:56 CEST, ends at Thu 2024-08-22 12:10:02 CEST. -- Aug 22 12:01:21 klipper systemd[1]: moonraker-telegram-bot.service: Consumed 10.523s CPU time. Aug 22 12:01:21 klipper systemd[1]: Stopped Moonraker Telegram Bot SV1. Aug 22 12:01:21 klipper systemd[1]: moonraker-telegram-bot.service: Succeeded. Aug 22 12:01:20 klipper systemd[1]: Stopping Moonraker Telegram Bot SV1... Aug 22 12:01:18 klipper python[15152]: logger.error( Aug 22 12:01:18 klipper python[15152]: File "/home/admin/moonraker-telegram-bot/bot/main.py", line 64, in handle_exception Aug 22 12:01:18 klipper python[15152]: Stack (most recent call last): Aug 22 12:01:18 klipper python[15152]: telegram.error.InvalidToken: Invalid token Aug 22 12:01:18 klipper python[15152]: raise InvalidToken() Aug 22 12:01:18 klipper python[15152]: File "/home/admin/moonraker-telegram-bot-env/lib/python3.9/site-packages/telegram/bot.py", line 363, in _validate_token Aug 22 12:01:18 klipper python[15152]: self.token = self._validate_token(token) Aug 22 12:01:18 klipper python[15152]: File "/home/admin/moonraker-telegram-bot-env/lib/python3.9/site-packages/telegram/bot.py", line 195, in init Aug 22 12:01:18 klipper python[15152]: super().init( Aug 22 12:01:18 klipper python[15152]: File "/home/admin/moonraker-telegram-bot-env/lib/python3.9/site-packages/telegram/ext/extbot.py", line 99, in init Aug 22 12:01:18 klipper python[15152]: self.bot = ExtBot( Aug 22 12:01:18 klipper python[15152]: File "/home/admin/moonraker-telegram-bot-env/lib/python3.9/site-packages/telegram/ext/updater.py", line 279, in init Aug 22 12:01:18 klipper python[15152]: updater = Updater( Aug 22 12:01:18 klipper python[15152]: File "/home/admin/moonraker-telegram-bot/bot/main.py", line 1006, in start_bot Aug 22 12:01:18 klipper python[15152]: bot_updater = start_bot(configWrap.secrets.token, configWrap.bot_config.socks_proxy) Aug 22 12:01:18 klipper python[15152]: File "/home/admin/moonraker-telegram-bot/bot/main.py", line 1106, in Aug 22 12:01:18 klipper python[15152]: Traceback (most recent call last): Aug 22 12:01:18 klipper python[15152]: 2024-08-22 12:01:18,374 - main - ERROR - Uncaught exception Aug 22 12:01:18 klipper python[15152]: 2024-08-22 12:01:18,257 - main - ERROR - Aug 22 12:01:01 klipper systemd[1]: Started Moonraker Telegram Bot SV1. Aug 22 12:01:01 klipper systemd[1]: moonraker-telegram-bot.service: Consumed 10.983s CPU time. Aug 22 12:01:01 klipper systemd[1]: Stopped Moonraker Telegram Bot SV1. Aug 22 12:01:01 klipper systemd[1]: moonraker-telegram-bot.service: Scheduled restart job, restart counter is at 534. Aug 22 12:00:51 klipper systemd[1]: moonraker-telegram-bot.service: Consumed 10.983s CPU time. Aug 22 12:00:51 klipper systemd[1]: moonraker-telegram-bot.service: Failed with result 'exit-code'. Aug 22 12:00:51 klipper systemd[1]: moonraker-telegram-bot.service: Main process exited, code=exited, status=1/FAILURE Aug 22 12:00:46 klipper python[14686]: logger.error( Aug 22 12:00:46 klipper python[14686]: File "/home/admin/moonraker-telegram-bot/bot/main.py", line 64, in handle_exception Aug 22 12:00:46 klipper python[14686]: Stack (most recent call last): Aug 22 12:00:46 klipper python[14686]: telegram.error.InvalidToken: Invalid token Aug 22 12:00:46 klipper python[14686]: raise InvalidToken() Aug 22 12:00:46 klipper python[14686]: File "/home/admin/moonraker-telegram-bot-env/lib/python3.9/site-packages/telegram/bot.py", line 363, in _validate_token Aug 22 12:00:46 klipper python[14686]: self.token = self._validate_token(token) Aug 22 12:00:46 klipper python[14686]: File "/home/admin/moonraker-telegram-bot-env/lib/python3.9/site-packages/telegram/bot.py", line 195, in init Aug 22 12:00:46 klipper python[14686]: super().init( Aug 22 12:00:46 klipper python[14686]: File "/home/admin/moonraker-telegram-bot-env/lib/python3.9/site-packages/telegram/ext/extbot.py", line 99, in init Aug 22 12:00:46 klipper python[14686]: self.bot = ExtBot( Aug 22 12:00:46 klipper python[14686]: File "/home/admin/moonraker-telegram-bot-env/lib/python3.9/site-packages/telegram/ext/updater.py", line 279, in init Aug 22 12:00:46 klipper python[14686]: updater = Updater( Aug 22 12:00:46 klipper python[14686]: File "/home/admin/moonraker-telegram-bot/bot/main.py", line 1006, in start_bot Aug 22 12:00:46 klipper python[14686]: bot_updater = start_bot(configWrap.secrets.token, configWrap.bot_config.socks_proxy) Aug 22 12:00:46 klipper python[14686]: File "/home/admin/moonraker-telegram-bot/bot/main.py", line 1106, in Aug 22 12:00:46 klipper python[14686]: Traceback (most recent call last): Aug 22 12:00:46 klipper python[14686]: 2024-08-22 12:00:45,940 - main - ERROR - Uncaught exception Aug 22 12:00:45 klipper python[14686]: 2024-08-22 12:00:45,849 - main - ERROR - Aug 22 12:00:31 klipper systemd[1]: Started Moonraker Telegram Bot SV1. Aug 22 12:00:31 klipper systemd[1]: moonraker-telegram-bot.service: Consumed 11.003s CPU time. Aug 22 12:00:31 klipper systemd[1]: Stopped Moonraker Telegram Bot SV1. Aug 22 12:00:31 klipper systemd[1]: moonraker-telegram-bot.service: Scheduled restart job, restart counter is at 533.

What branch does this occur on?

master

Reports only on latest master or development branches!

nlef commented 2 months ago

Duplicate of #122