Skip to content
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

Deckmaster process randomly using large amount of processor power #53

Open
HoodedDeath opened this issue Nov 12, 2021 · 4 comments
Open

Comments

@HoodedDeath
Copy link
Contributor

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/user@1000.service/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"
@HoodedDeath
Copy link
Contributor Author

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

@mtwb47
Copy link

mtwb47 commented Jul 11, 2023

Having the exact same problem. It was using 200+% according to htop.
2023-07-11_00-25

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.

@HoodedDeath
Copy link
Contributor Author

HoodedDeath commented Jul 11, 2023

@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.

@mtwb47
Copy link

mtwb47 commented Jul 11, 2023

@HoodedDeath Oh, thanks! That did it for me too. easy fixes are always the best.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants