deckmaster
deckmaster copied to clipboard
Deckmaster process randomly using large amount of processor power
Description At seemingly random times, the deckmaster process begins consuming roughly 20% of my Ryzen 7 3700X. I am currently unable to confirm if this is always the case, but for the most recent occurence, the log through systemd contians these two lines at the end:
XGB: xgb.go:455: A read error is unrecoverable: read unix @->/tmp/.X11-unix/X0: read: connection reset by peer
XGB: xgb.go:455: A read error is unrecoverable: EOF
Although this error seems to be the result of logging out and logging back in, this is the only clue I have. If needed for further info, I can run deckmaster through a normal shell instance to get more complete output. If there are verbosity options available, please inform.
Desktop:
- Distro: Arch
- Deckmaster Version: 0.5.1
Log
Full output of systemctl --user status streamdeck.service
:
● streamdeck.service - Deckmaster Service
Loaded: loaded (/home/death/.config/systemd/user/streamdeck.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2021-11-11 23:43:14 MST; 1h 44min ago
TriggeredBy: ● streamdeck.path
Main PID: 5242 (deckmaster)
Tasks: 24 (limit: 38376)
Memory: 828.9M
CPU: 4h 33min 18.437s
CGroup: /user.slice/user-1000.slice/[email protected]/app.slice/streamdeck.service
└─5242 /usr/bin/deckmaster -deck /home/death/.local/share/streamdeck-deckmaster/main.deck -brightness 60
Nov 11 23:43:20 Scarlet deckmaster[5242]: Active window changed to Opera (60817417, Nmap - ArchWiki - Opera)
Nov 11 23:43:20 Scarlet deckmaster[5242]: Active window changed to Opera (60817419, 41124 – (need-to-run-perl-cleaner) configure: error: XML::Parser perl module is required for [...] - YOU NEED TO RUN `perl-cleaner' - Opera)
Nov 11 23:43:20 Scarlet deckmaster[5242]: Active window changed to Opera (60817420, Gentoo Forums :: View topic - media-libs/libsdl2 fails to build, requires wayland? (gles2) - Opera)
Nov 11 23:43:21 Scarlet deckmaster[5242]: Active window changed to Opera (60817421, /etc/portage/package.mask - Gentoo Wiki - Opera)
Nov 11 23:43:21 Scarlet deckmaster[5242]: Active window changed to Opera (60817422, AUR (en) - minecraft-server-manager - Opera)
Nov 11 23:43:21 Scarlet deckmaster[5242]: Active window changed to Opera (60817423, Welcome to Opera - Opera)
Nov 11 23:43:21 Scarlet deckmaster[5242]: Active window changed to Opera (60817425, Opera - Update complete! - Opera)
Nov 11 23:43:21 Scarlet deckmaster[5242]: Active window changed to Opera (60817426, [1.17.1 (Crash/No Boot)] On launch a Minecraft window never appears and comes with a crash (Mac 2012 Macos Mojave) · Issue #6278 · sp614x/optifine - Opera)
Nov 11 23:43:21 Scarlet deckmaster[5242]: XGB: xgb.go:455: A read error is unrecoverable: read unix @->/tmp/.X11-unix/X0: read: connection reset by peer
Nov 11 23:43:21 Scarlet deckmaster[5242]: XGB: xgb.go:455: A read error is unrecoverable: EOF
Configuration:
[[keys]]
index = 0
[keys.widget]
id = "time"
interval = 1000
[keys.widget.config]
format = "%D;%M;%d"
[keys.action]
exec = "systemctl --user restart streamdeck.service"
[[keys]]
index = 1
[keys.widget]
interval = 1000
id = "time"
[keys.widget.config]
format = "%h:%i;%s %a"
[[keys]]
index = 2
[keys.widget]
id = "weather"
interval = 60000
[keys.widget.config]
location = "orem"
unit = "fahrenheit"
[[keys]]
index = 3
[keys.widget]
id = "top"
[keys.widget.config]
mode = "cpu"
[[keys]]
index = 4
[keys.widget]
id = "top"
[keys.widget.config]
mode = "memory"
[[keys]]
index = 5
[keys.widget]
id = "button"
[keys.widget.config]
label = "Vol \\/"
[keys.action]
keycode = "Volumedown"
[[keys]]
index = 6
[keys.widget]
id = "button"
[keys.widget.config]
label = "Vol /\\"
[keys.action]
keycode = "Volumeup"
[[keys]]
index = 7
[keys.widget]
id = "button"
[keys.widget.config]
label = "Mute"
[keys.action]
keycode = "mute"
[[keys]]
index = 8
[keys.widget]
id = "command"
interval = 60000
[keys.widget.config]
command = "echo 'Avail'; echo 'Root:'; df --output=avail --human-readable /dev/mapper/main-root | tail -n 1 | sed 's/^ *//g'"
[[keys]]
index = 9
[keys.widget]
id = "command"
interval = 60000
[keys.widget.config]
command = "echo 'Avail'; echo 'Extra:'; df --output=avail --human-readable /dev/mapper/cryptext | tail -n 1 | sed 's/^ *//g'"
[[keys]]
index = 10
[keys.widget]
id = "command"
interval = 60000
[keys.widget.config]
command = "echo 'Avail'; echo 'Swap:'; /home/death/scripts/output-free-swap"
[[keys]]
index = 11
[keys.widget]
id = "button"
[keys.widget.config]
label = "Play/Pause"
[keys.action]
keycode = "Playpause"
[[keys]]
index = 12
[keys.widget]
id = "button"
[keys.widget.config]
label = "Deafen"
[keys.action]
keycode = "Rightshift-F7"
[[keys]]
index = 13
[keys.widget]
id = "button"
[keys.widget.config]
label = "Mute"
[keys.action]
keycode = "Rightshift-F8"
[[keys]]
index = 14
[keys.widget]
id = "button"
[keys.widget.config]
label = "Screen"
[keys.action]
exec = "/home/death/scripts/rotate-screen"
[keys.action_hold]
exec = "/home/death/scripts/rotate-screen --fix"
[[keys]]
index = 15
[keys.widget]
id = "button"
[keys.widget.config]
icon = "/opt/discord/discord.png"
[keys.action]
exec = "discord"
[[keys]]
index = 16
[keys.widget]
id = "command"
interval = 3600000
[keys.widget.config]
command = "echo 'Find'; echo 'Cursor'"
[keys.action]
exec = "xfce4-find-cursor"
[[keys]]
index = 21
[keys.widget]
id = "command"
[keys.widget.config]
command = "echo 'CPU Top:'; /home/death/scripts/get-top-cpu-usage"
[[keys]]
index = 22
[keys.widget]
id = "button"
[keys.widget.config]
icon = "/home/death/pictures/mango.png"
[keys.action]
exec = "xdotool key F14"
[[keys]]
index = 23
[keys.widget]
id = "button"
[keys.widget.config]
icon = "/usr/share/icons/hicolor/256x256/apps/steam.png"
[keys.action]
exec = "steam-runtime"
[[keys]]
index = 24
[keys.widget]
id = "command"
[keys.widget.config]
command = "echo \"CPU\"; /home/death/scripts/output-tctl"
[[keys]]
index = 25
[keys.widget]
id = "command"
[keys.widget.config]
command = "echo \"GPU\"; /home/death/scripts/output-edge"
[[keys]]
index = 26
[keys.widget]
id = "command"
interval = 10000
[keys.widget.config]
command = "echo \"BATT\"; /home/death/scripts/print-battery-percent"
[[keys]]
index = 29
[keys.widget]
id = "command"
[keys.widget.config]
command = "echo 'Hold'; echo 'LMB'"
[keys.action]
exec = "xdotool mousedown 1"
[keys.action_hold]
exec = "xdotool keydown e"
[[keys]]
index = 30
[keys.widget]
id = "button"
[keys.widget.config]
icon = "/usr/share/icons/hicolor/256x256/apps/opera.png"
[keys.action]
exec = "opera"
[[keys]]
index = 31
[keys.widget]
id = "command"
[keys.widget.config]
command = "echo 'Togg'; echo 'F9'"
[keys.action]
exec = "/home/death/toggle-f9"
Have now confirmed Deckmaster's high CPU usage starts when logging out and logging back in. Xorg read error potentially caused by a bug Opera is having on my system where every Opera window fights for focus as fast as possible. This may be causing some pilling up in Deckmaster's window-change queue
Having the exact same problem. It was using 200+% according to htop.
And I do not use Opera, so that's not the issue, at least not for me. Restarting the deck solves the problem. I'm going to run Deckmaster through the terminal for a bit and see if it eventually spits out anything interesting.
Unfortunately, it looks like Deckmater is abandoned, which is disappointing.
@mtwb47 I forgot to leave a mention here about this, but I did find the widget that was causing the issue. Same idea as yours, I ran Deckmaster through a terminal emulator and let it sit. If I remember right, I removed the window switcher widget (or whatever it's called that lets you focus to the previous window that was focused) and the issue went away. The program output gave a whole bunch of Xorg read errors, so that widget was my suspect and it seemed to be correct. But I haven't tested that out recently and have since switched to Wayland and not touched that widget.
@HoodedDeath Oh, thanks! That did it for me too. easy fixes are always the best.