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

waybar keeps eating my CPU #2631

Closed
Toni500github opened this issue Nov 2, 2023 · 17 comments
Closed

waybar keeps eating my CPU #2631

Toni500github opened this issue Nov 2, 2023 · 17 comments
Labels
bug Something isn't working performance regression

Comments

@Toni500github
Copy link

Toni500github commented Nov 2, 2023

Version: Waybar v0.9.22-215-g7dfc7200 (branch 'master')
Installed with the AUR package waybar-git
Distro: EndeavourOS
Kernel: 6.5.9-arch2-1
WM/DE: Hyprland

Basically if I run waybar normally, it will eat ~16% of my CPU, but if I run it with the "-l debug" option, it runs normal and doesn't eat CPU at all. Tested on Hyprland, commit 062f749
image

Edit:

this bug is strange, basically when I terminated the waybar process and then run waybar -l debug, it used to run waybar normal but it happens that will eat the same amount of CPU as when running normally, continuing to spam [2023-11-02 15:07:42.326] [debug] waitpid failed: No child processes

@jpalus
Copy link
Contributor

jpalus commented Nov 2, 2023

I believe I'm affected by the same issue which is caused by last commit squeezed in before release: #2629.

It adds reaping of child command process to the main reap queue:

reap_mtx.lock();
reap.push_back(child_pid);
reap_mtx.unlock();

ignoring the fact that it's already being reaped through close:

exit_code = WEXITSTATUS(util::command::close(fp_, pid_));

inline int close(FILE* fp, pid_t pid) {
int stat = -1;
pid_t ret;
fclose(fp);
do {
ret = waitpid(pid, &stat, WCONTINUED | WUNTRACED);
if (WIFEXITED(stat)) {
spdlog::debug("Cmd exited with code {}", WEXITSTATUS(stat));
} else if (WIFSIGNALED(stat)) {
spdlog::debug("Cmd killed by {}", WTERMSIG(stat));
} else if (WIFSTOPPED(stat)) {
spdlog::debug("Cmd stopped by {}", WSTOPSIG(stat));
} else if (WIFCONTINUED(stat)) {
spdlog::debug("Cmd continued");
} else if (ret == -1) {
spdlog::debug("waitpid failed: {}", strerror(errno));
} else {
break;
}
} while (!WIFEXITED(stat) && !WIFSIGNALED(stat));
return stat;
}

Both of these now race as to who will be the first to successfully waitpid for the child. One will handle process exit successfully, while the other will fail with ECHILD. Unfortunately none of them handles ECHILD correctly:

  • SIGCHLD handler will accumulate such pids indefinitely in reap:

    Waybar/src/main.cpp

    Lines 29 to 41 in c6a9b63

    case SIGCHLD:
    spdlog::debug("Received SIGCHLD in signalThread");
    if (!reap.empty()) {
    reap_mtx.lock();
    for (auto it = reap.begin(); it != reap.end(); ++it) {
    if (waitpid(*it, nullptr, WNOHANG) == *it) {
    spdlog::debug("Reaped child with PID: {}", *it);
    it = reap.erase(it);
    }
    }
    reap_mtx.unlock();
    }
    break;
  • close will start infinite loop
    do {
    ret = waitpid(pid, &stat, WCONTINUED | WUNTRACED);
    if (WIFEXITED(stat)) {
    spdlog::debug("Cmd exited with code {}", WEXITSTATUS(stat));
    } else if (WIFSIGNALED(stat)) {
    spdlog::debug("Cmd killed by {}", WTERMSIG(stat));
    } else if (WIFSTOPPED(stat)) {
    spdlog::debug("Cmd stopped by {}", WSTOPSIG(stat));
    } else if (WIFCONTINUED(stat)) {
    spdlog::debug("Cmd continued");
    } else if (ret == -1) {
    spdlog::debug("waitpid failed: {}", strerror(errno));
    } else {
    break;
    }
    } while (!WIFEXITED(stat) && !WIFSIGNALED(stat));

I would revert 1c1a39f possibly followed by improving waitpid error handling.

@Diaoul
Copy link

Diaoul commented Nov 2, 2023

Same here but it's eating all my CPU 🔥

@p4block
Copy link

p4block commented Nov 2, 2023

100% of a core gets eaten up by waybar on my machine too.
Modules:

    "battery",
    "disk#root",
    "disk#storage",
    "disk#server",
    "memory",
    "temperature#cpu",
    "temperature#gpu",
    "temperature#gpu-hotspot",
    "temperature#gpu-mem",
    "cpu",
    "custom/cpu"
  ],
  "modules-center": [
    "sway/workspaces",
    "wlr/workspaces"
  ],
  "modules-right": [
    "custom/recorder",
    "custom/ping",
    "custom/paru",
    "custom/weather",
    "custom/airquality",
    "custom/media",
    "network",
    "wireplumber",
    "backlight",
    "clock",
    "tray"
  ],

EDIT: as per other comments, disabling all the custom ones works around the problem

@juvevood
Copy link

juvevood commented Nov 3, 2023

same issues by latest commit

@ghost
Copy link

ghost commented Nov 3, 2023

Same problem for me since upgrading to Waybar v0.9.23 (installed via the Arch Linux respositories), 100% load on one CPU core. Log Level Debug does not seem to make any difference for me.
Distro: Arch Linux
Kernel: 6.5.9-arch2-1
WM: Sway

After some trial and error I found out that the CPU load is normal without a custom module, which I am using:

"custom/weather": {
    "format": "{}",
    "tooltip": false,
    "exec": "curl -s 'https://wttr.in/Berlin?format=%l:%20%t%20%c'",
    "interval": 3600
}

Not sure if the configuration is correct, I can only say that the module works fine after a downgrade to Waybar v0.9.22.

@Roknor
Copy link

Roknor commented Nov 3, 2023

Same here, any custom module that uses terminal commands makes one of CPU cores always run at 100%. Downgrading to 0.9.22 fixes it, too bad persistent workspaces are broken in 0.9.22...
Oddly, adding a 1 second delay to my custom weather widget, makes it work normally. But that didn't help when i tried it on my pacman and aur widgets. Nevermind, it's back to 100% after about 10 minutes.

@Toni500github Toni500github changed the title waybar eats 16% of CPU unless you run it with debug output (waybar --log-level debug) waybar keeps eating my CPU Nov 3, 2023
@manfred3000
Copy link

manfred3000 commented Nov 3, 2023

Not a "+1" fan, but waybar uses up to 300% cpu (htop) here since updating to v0.9.23 running Arch Linux.
I'm using a lot of custom modules and have to disable all of them or downgrade waybar to v0.9.22 in order to get back to a normal cpu usage.

@fenggwsx
Copy link

fenggwsx commented Nov 3, 2023

The same problem. It eats up to 300% of my CPU cores. But when I remove my custom modules, it works normally.

@euglevi
Copy link

euglevi commented Nov 3, 2023

Same here!

@Alexays
Copy link
Owner

Alexays commented Nov 3, 2023

Can someone with the problem can test by reverting this commit bf371f7
Edit: or this PR #2601

@jpalus
Copy link
Contributor

jpalus commented Nov 3, 2023

@Alexays issue remains after reverting bf371f7 but that was kind of expected. The actual issue was already bisected and explained (#2631 (comment)) or you don't agree with this analysis?

@SketchyStunts
Copy link

I had to downgrade. Noticed on my laptop this morning (potato)
231103_07h01m51s_screenshot

@alba4k
Copy link

alba4k commented Nov 3, 2023

Yep I can totally confirm this too. on 0.9.22 Waybar seems to use a decently normal amount of cpu
image

On waybar 0.9.23, however, it starts at ~20% cpu usage and keeps rising.
On my config, this seems to be caused by my media player modules, but the default config also has this issue, starting at around 10%.
image

I can also confirm that starting with --log-level [anything] makes the cpu usage more normal (starting at around 5% and rising)

Also, on 0.9.23 the media player modules I previously mentioned appear weird, where some of them appear and others don't on some monitors.
image

My configuration can be found here: https://github.com/alba4k/.dotfiles/tree/master/.config/waybar

@bionade24
Copy link

bionade24 commented Nov 3, 2023

Here is a perf of 9.23.0 release:

# To display the perf.data header info, please use --header/--header-only options.
#
#
# Total Lost Samples: 0
#
# Samples: 113K of event 'cycles:Pu'
# Event count (approx.): 80211012831
#
# Overhead       Samples  Command          Shared Object                 Symbol                                                                                                                   
# ........  ............  ...............  ............................  .........................................................................................................................
#
    10.09%         11443  waybar           libc.so.6                     [.] __tfind
     5.75%          6515  waybar           libc.so.6                     [.] 0x000000000015a741
     5.62%          6391  waybar           libc.so.6                     [.] wait4
     5.17%          5866  waybar           libc.so.6                     [.] pthread_rwlock_rdlock
     4.15%          4703  waybar           libc.so.6                     [.] 0x000000000015a74b
     4.05%          4607  waybar           [unknown]                     [k] 0xffffffffb7db143c
     3.77%          4274  waybar           libc.so.6                     [.] 0x00000000000379d5
     3.01%          3420  waybar           [unknown]                     [k] 0xffffffffb8ba8c6f
     2.82%          3208  waybar           [unknown]                     [k] 0xffffffffb8be3e0b
     2.72%          3089  waybar           libc.so.6                     [.] strerror_l
     2.37%          2693  waybar           [unknown]                     [k] 0xffffffffb8ba8c7e
     2.29%          2605  waybar           [unknown]                     [k] 0xffffffffb7ccc457
     2.29%          2609  waybar           [unknown]                     [k] 0xffffffffb8ba8c54
     2.26%          2559  waybar           libc.so.6                     [.] 0x000000000015a733
     1.97%          2235  waybar           libc.so.6                     [.] 0x000000000015a747
     1.52%          1728  waybar           libc.so.6                     [.] __uselocale
     1.32%          1498  waybar           libc.so.6                     [.] __errno_location
     1.15%          1302  waybar           [unknown]                     [k] 0xffffffffb8be3ebd
     1.14%          1289  waybar           libc.so.6                     [.] 0x00000000000379d0
     1.11%          1251  waybar           libc.so.6                     [.] 0x000000000015a73b
     1.08%          1223  waybar           libc.so.6                     [.] 0x000000000015a714
     1.04%          1183  waybar           libc.so.6                     [.] 0x00000000000379ed
     1.01%          1146  waybar           libc.so.6                     [.] 0x000000000015a751
     0.99%          1124  waybar           libc.so.6                     [.] 0x000000000015a719
     0.95%          1083  waybar           [unknown]                     [k] 0xffffffffb8be3df4
     0.94%          1065  waybar           [unknown]                     [k] 0xffffffffb7ccc449
     0.93%          1054  waybar           libc.so.6                     [.] 0x00000000000379d7
     0.93%          1050  waybar           libc.so.6                     [.] strcmp@plt
     0.90%          1025  waybar           [unknown]                     [k] 0xffffffffb8be3dec
     0.83%           944  waybar           libc.so.6                     [.] 0x0000000000088e21
     0.83%           939  waybar           [unknown]                     [k] 0xffffffffb7cfaac0
     0.64%           724  waybar           waybar                        [.] 0x0000000000060c02
     0.56%           635  waybar           libc.so.6                     [.] strerror
     0.53%           606  waybar           libc.so.6                     [.] 0x0000000000088e0f
     0.53%           605  waybar           [unknown]                     [k] 0xffffffffb7cfa772
     0.51%           576  waybar           libc.so.6                     [.] pthread_rwlock_unlock
     0.48%           548  waybar           [unknown]                     [k] 0xffffffffb8be3deb
     0.48%           547  waybar           [unknown]                     [k] 0xffffffffb8b92be7
     0.48%           545  waybar           [unknown]                     [k] 0xffffffffb8ba8c84
     0.46%           521  waybar           [unknown]                     [k] 0xffffffffb8bc6a3e
     0.46%           513  waybar           waybar                        [.] 0x0000000000060bbe
     0.45%           506  waybar           [unknown]                     [k] 0xffffffffb8c00040
     0.43%           494  waybar           [unknown]                     [k] 0xffffffffb8ba8c75
     0.43%           491  waybar           waybar                        [.] 0x0000000000060b73
     0.42%           478  waybar           [unknown]                     [k] 0xffffffffb8ba8c79
     0.42%           476  waybar           waybar                        [.] 0x0000000000060b71
     0.40%           454  waybar           [unknown]                     [k] 0xffffffffb8ba8c72
     0.40%           452  waybar           libc.so.6                     [.] 0x00000000000385b1
     0.38%           428  waybar           libc.so.6                     [.] __dcgettext
     0.36%           404  waybar           [unknown]                     [k] 0xffffffffb8c00050
     0.35%           395  waybar           [unknown]                     [k] 0xffffffffb8ba8c94
     0.34%           383  waybar           libc.so.6                     [.] 0x000000000015a74f
     0.33%           370  waybar           [unknown]                     [k] 0xffffffffb7cfa769
     0.28%           314  waybar           libc.so.6                     [.] 0x00000000000385d1
     0.23%           255  waybar           [unknown]                     [k] 0xffffffffb8c00047
     0.21%           234  waybar           libc.so.6                     [.] 0x0000000000036a4a
     0.20%           226  waybar           [unknown]                     [k] 0xffffffffb7db141e
     0.20%           223  waybar           libc.so.6                     [.] 0x0000000000075e36
     0.19%           215  waybar           [unknown]                     [k] 0xffffffffb7da1da4
     0.19%           213  waybar           libc.so.6                     [.] 0x0000000000088e1d
     0.19%           211  waybar           [unknown]                     [k] 0xffffffffb7ccc4d4
     0.18%           209  waybar           [unknown]                     [k] 0xffffffffb7db13eb
     0.18%           207  waybar           libc.so.6                     [.] 0x0000000000036a30
     0.18%           204  waybar           libc.so.6                     [.] 0x00000000000379c0
     0.18%           206  waybar           [unknown]                     [k] 0xffffffffb7d51574
     0.18%           202  waybar           libc.so.6                     [.] 0x0000000000038535
     0.18%           201  waybar           [unknown]                     [k] 0xffffffffb7d515b5
     0.17%           199  waybar           [unknown]                     [k] 0xffffffffb7d50d90
     0.17%           193  waybar           [unknown]                     [k] 0xffffffffb834fb89
     0.17%           190  waybar           [unknown]                     [k] 0xffffffffb8c001e2
     0.17%           190  waybar           [unknown]                     [k] 0xffffffffb8be3eaf
     0.17%           190  waybar           [unknown]                     [k] 0xffffffffb7db0dc0
     0.17%           190  waybar           [unknown]                     [k] 0xffffffffb7ccc535
     0.17%           189  waybar           [unknown]                     [k] 0xffffffffb834faa7
     0.17%           188  waybar           libc.so.6                     [.] 0x00000000000379e6
     0.16%           186  waybar           [unknown]                     [k] 0xffffffffb7d51581
     0.16%           186  waybar           [unknown]                     [k] 0xffffffffb7d50db3
     0.16%           186  waybar           [unknown]                     [k] 0xffffffffb8be3de9
     0.16%           185  waybar           [unknown]                     [k] 0xffffffffb8bc6a30
     0.16%           184  waybar           [unknown]                     [k] 0xffffffffb7d50d78
     0.16%           184  waybar           [unknown]                     [k] 0xffffffffb7ccb8bb
     0.16%           184  waybar           libc.so.6                     [.] 0x0000000000038541
     0.16%           183  waybar           [unknown]                     [k] 0xffffffffb7ccb89b
     0.16%           183  waybar           [unknown]                     [k] 0xffffffffb8c0017b
     0.16%           183  waybar           [unknown]                     [k] 0xffffffffb7ccba28
     0.16%           182  waybar           libc.so.6                     [.] 0x0000000000088df7
     0.16%           182  waybar           [unknown]                     [k] 0xffffffffb7ccb8f0
     0.16%           181  waybar           [unknown]                     [k] 0xffffffffb7db0da6
     0.16%           179  waybar           [unknown]                     [k] 0xffffffffb7cfa79b
     0.16%           177  waybar           [unknown]                     [k] 0xffffffffb8be3df3
     0.15%           175  waybar           [unknown]                     [k] 0xffffffffb8bc6a5b
     0.15%           174  waybar           [unknown]                     [k] 0xffffffffb7d50d70
     0.15%           172  waybar           libc.so.6                     [.] 0x00000000000385ce
     0.15%           172  waybar           [unknown]                     [k] 0xffffffffb7ccba34
     0.15%           171  waybar           [unknown]                     [k] 0xffffffffb8ba8c61
     0.15%           170  waybar           [unknown]                     [k] 0xffffffffb7ccc554
     0.15%           170  waybar           [unknown]                     [k] 0xffffffffb7d515dd
     0.15%           166  waybar           [unknown]                     [k] 0xffffffffb834fb5b
     0.15%           165  waybar           [unknown]                     [k] 0xffffffffb834faca
     0.14%           163  waybar           waybar                        [.] 0x0000000000060c07
     0.14%           160  waybar           [unknown]                     [k] 0xffffffffb8bc6a56
     0.14%           157  waybar           [unknown]                     [k] 0xffffffffb8c00110
     0.14%           156  waybar           [unknown]                     [k] 0xffffffffb8ba8c5a
     0.14%           155  waybar           [unknown]                     [k] 0xffffffffb8ba8c5e
     0.14%           154  waybar           [unknown]                     [k] 0xffffffffb7ccc584
     0.14%           154  waybar           [unknown]                     [k] 0xffffffffb7d51560
     0.14%           154  waybar           waybar                        [.] 0x0000000000060b47
     0.13%           152  waybar           [unknown]                     [k] 0xffffffffb7db1441
     0.13%           147  waybar           [unknown]                     [k] 0xffffffffb8ba8c44
     0.13%           146  waybar           [unknown]                     [k] 0xffffffffb8c001dd
     0.13%           146  waybar           [unknown]                     [k] 0xffffffffb8ba8c48
     0.13%           145  waybar           [unknown]                     [k] 0xffffffffb8c000ea
     0.13%           144  waybar           [unknown]                     [k] 0xffffffffb7d515ed
     0.12%           141  waybar           [unknown]                     [k] 0xffffffffb8ba8c3e
     0.12%           141  waybar           [unknown]                     [k] 0xffffffffb8c00154
     0.12%           141  waybar           [unknown]                     [k] 0xffffffffb7ccc45a
     0.12%           140  waybar           waybar                        [.] 0x0000000000060b43
     0.12%           137  waybar           [unknown]                     [k] 0xffffffffb8c00188
     0.12%           136  waybar           libc.so.6                     [.] 0x000000000003854f
     0.12%           136  waybar           libc.so.6                     [.] 0x00000000000385f3
     0.12%           135  waybar           libc.so.6                     [.] 0x000000000003861c
     0.11%           129  waybar           [unknown]                     [k] 0xffffffffb7cfa76d
     0.11%           127  waybar           [unknown]                     [k] 0xffffffffb8b92bea
     0.11%           124  waybar           libc.so.6                     [.] 0x000000000003853c
     0.11%           121  waybar           libc.so.6                     [.] 0x000000000015a737
     0.11%           122  waybar           [unknown]                     [k] 0xffffffffb7cfa751
     0.10%           116  waybar           libc.so.6                     [.] 0x000000000003856c
     0.10%           116  waybar           [unknown]                     [k] 0xffffffffb7ccc482
     0.10%           114  waybar           libc.so.6                     [.] 0x0000000000088d99
     0.10%           112  waybar           [unknown]                     [k] 0xffffffffb7cfa74a
     0.10%           111  waybar           [unknown]                     [k] 0xffffffffb8c00091
     0.10%           110  waybar           libc.so.6                     [.] 0x0000000000038534
     0.09%           107  waybar           [unknown]                     [k] 0xffffffffb7d99ffb
     0.09%           100  waybar           [unknown]                     [k] 0xffffffffb8c00044
     0.08%            92  waybar           [unknown]                     [k] 0xffffffffb7cfa764
     0.08%            91  waybar           libc.so.6                     [.] 0x00000000000385ea
     0.08%            87  waybar           libspdlog.so.1.12.0           [.] spdlog::default_logger_raw()
     0.08%            86  waybar           libc.so.6                     [.] 0x0000000000038563
     0.07%            83  waybar           [unknown]                     [k] 0xffffffffb8c0006f
     0.07%            81  waybar           libc.so.6                     [.] 0x0000000000075e41
     0.07%            80  waybar           [unknown]                     [k] 0xffffffffb8bc678c
     0.07%            79  waybar           [unknown]                     [k] 0xffffffffb7d99ff8
     0.07%            78  waybar           libc.so.6                     [.] 0x00000000000385a4
     0.07%            76  waybar           libspdlog.so.1.12.0           [.] spdlog::details::registry::instance()
     0.07%            75  waybar           libc.so.6                     [.] 0x0000000000038570
     0.06%            73  waybar           libc.so.6                     [.] 0x0000000000038615
     0.06%            72  waybar           [unknown]                     [k] 0xffffffffb7ccc44c
     0.06%            69  waybar           [unknown]                     [k] 0xffffffffb8c00077
     0.06%            65  waybar           libspdlog.so.1.12.0           [.] spdlog::details::backtracer::enabled() const
     0.05%            61  waybar           waybar                        [.] 0x0000000000060c04
     0.05%            56  waybar           waybar                        [.] 0x0000000000060bcb
     0.05%            51  waybar           libc.so.6                     [.] __waitpid
     0.04%            48  waybar           libc.so.6                     [.] 0x00000000000385a7
     0.04%            47  waybar           [unknown]                     [k] 0xffffffffb8bc67a3
     0.04%            45  waybar           libc.so.6                     [.] 0x00000000000385e5
     0.04%            44  waybar           libc.so.6                     [.] 0x00000000000385d5
     0.04%            42  waybar           libc.so.6                     [.] 0x000000000015a754
     0.03%            39  waybar           [unknown]                     [k] 0xffffffffb8c00132
     0.03%            37  waybar           [unknown]                     [k] 0xffffffffb8bc36db
     0.03%            37  waybar           libc.so.6                     [.] 0x000000000003857d
     0.03%            36  waybar           libc.so.6                     [.] 0x0000000000038540
     0.03%            36  waybar           [unknown]                     [k] 0xffffffffb8c000ff
     0.03%            36  waybar           libc.so.6                     [.] 0x0000000000038601
     0.03%            35  waybar           [unknown]                     [k] 0xffffffffb8c00087
     0.03%            34  waybar           libc.so.6                     [.] 0x0000000000038a15
     0.03%            35  waybar           libc.so.6                     [.] 0x000000000015a72f
     0.03%            34  waybar           libc.so.6                     [.] 0x0000000000037a24
     0.03%            32  waybar           [unknown]                     [k] 0xffffffffb8c00182
     0.03%            31  waybar           waybar                        [.] 0x0000000000060b79
     0.03%            30  waybar           waybar                        [.] 0x0000000000060bdd
     0.03%            30  waybar           libc.so.6                     [.] 0x0000000000038a2c
     0.03%            29  waybar           libc.so.6                     [.] 0x000000000003863a
     0.03%            29  waybar           libc.so.6                     [.] 0x0000000000038b1d
     0.03%            29  waybar           [unknown]                     [k] 0xffffffffb8c000ba
     0.02%            27  waybar           libc.so.6                     [.] 0x000000000015aa64
     0.02%            27  waybar           [unknown]                     [k] 0xffffffffb7ccc43a
     0.02%            26  waybar           waybar                        [.] 0x0000000000060b8b
     0.02%            26  waybar           [unknown]                     [k] 0xffffffffb8bc6784
     0.02%            26  waybar           libc.so.6                     [.] 0x0000000000088d83
     0.02%            25  waybar           [unknown]                     [k] 0xffffffffb8bbf436
     0.02%            24  waybar           libc.so.6                     [.] 0x000000000003855c
     0.02%            24  waybar           [unknown]                     [k] 0xffffffffb8c00175
     0.02%            23  waybar           libc.so.6                     [.] 0x0000000000038afc
     0.02%            23  waybar           [unknown]                     [k] 0xffffffffb7cfa780
     0.02%            22  waybar           libc.so.6                     [.] 0x0000000000038b11
     0.02%            22  waybar           libc.so.6                     [.] 0x0000000000088da3
     0.02%            22  waybar           [unknown]                     [k] 0xffffffffb8c0008d
     0.02%            22  waybar           [unknown]                     [k] 0xffffffffb8bc6774
     0.02%            22  waybar           libc.so.6                     [.] 0x00000000000385c8
     0.02%            22  waybar           libc.so.6                     [.] 0x0000000000038580
     0.02%            22  waybar           [unknown]                     [k] 0xffffffffb8bc6a4b
     0.02%            21  waybar           waybar                        [.] 0x000000000013fc57
     0.02%            21  waybar           libc.so.6                     [.] 0x000000000003858d
     0.02%            21  waybar           [unknown]                     [k] 0xffffffffb8bbf480
     0.02%            20  waybar           waybar                        [.] 0x000000000013fc08
     0.02%            20  waybar           waybar                        [.] 0x000000000013fbef
     0.02%            20  waybar           [unknown]                     [k] 0xffffffffb8c000a4
     0.02%            20  waybar           [unknown]                     [k] 0xffffffffb7ccc41a
     0.02%            20  waybar           libc.so.6                     [.] 0x0000000000038538
     0.02%            19  waybar           waybar                        [.] 0x000000000013fc35
     0.02%            19  waybar           [unknown]                     [k] 0xffffffffb8c00080
     0.02%            19  waybar           [unknown]                     [k] 0xffffffffb8bbf460
     0.02%            18  waybar           libc.so.6                     [.] 0x00000000000379fd
     0.02%            18  waybar           [unknown]                     [k] 0xffffffffb7db1431
     0.02%            18  waybar           [unknown]                     [k] 0xffffffffb8c00196
     0.02%            17  waybar           libc.so.6                     [.] 0x0000000000037a1b
     0.02%            17  waybar           libc.so.6                     [.] 0x00000000000385ee
     0.02%            17  waybar           [unknown]                     [k] 0xffffffffb7ccc3ff
     0.01%            17  waybar           [unknown]                     [k] 0xffffffffb8bbf418
     0.01%            17  waybar           waybar                        [.] 0x000000000013fc22
     0.01%            10  powerprofilesct  libpython3.11.so.1.0          [.] _PyEval_EvalFrameDefault
     0.01%            14  waybar           libc.so.6                     [.] 0x0000000000036a34
     0.01%            14  waybar           [unknown]                     [k] 0xffffffffb7d515da
     0.01%            14  waybar           [unknown]                     [k] 0xffffffffb834fac5
     0.01%            14  waybar           [unknown]                     [k] 0xffffffffb7ccc40f
     0.01%            13  waybar           [unknown]                     [k] 0xffffffffb8c015f0
     0.01%            12  waybar           libc.so.6                     [.] 0x00000000000385bc
     0.01%            11  waybar           [unknown]                     [k] 0xffffffffb8bc67a8
     0.01%            11  waybar           [unknown]                     [k] 0xffffffffb8bbf454
     0.01%            11  waybar           [unknown]                     [k] 0xffffffffb7ccc41e
     0.01%            11  waybar           [unknown]                     [k] 0xffffffffb7d515eb
     0.01%            11  waybar           [unknown]                     [k] 0xffffffffb7c48587
     0.01%            10  waybar           [unknown]                     [k] 0xffffffffb8bc36df
     0.01%             9  waybar           waybar                        [.] 0x000000000013fbfd
     0.01%             9  waybar           waybar                        [.] 0x000000000013fbea
     0.01%             9  waybar           libc.so.6                     [.] 0x0000000000038548
     0.01%             9  waybar           libc.so.6                     [.] 0x00000000000385b7
     0.01%             9  waybar           [unknown]                     [k] 0xffffffffb7ccc40a
     0.01%             9  waybar           [unknown]                     [k] 0xffffffffb7db1448
     0.01%             8  waybar           [unknown]                     [k] 0xffffffffb8c00109
     0.01%             8  waybar           libc.so.6                     [.] 0x00000000000379e0
     0.01%             8  waybar           libc.so.6                     [.] 0x000000000015a725
     0.01%             7  waybar           libc.so.6                     [.] 0x0000000000038632
     0.01%             7  waybar           [unknown]                     [k] 0xffffffffb7dccd5a
     0.01%             7  waybar           [unknown]                     [k] 0xffffffffb8bbf481
     0.01%             7  waybar           libc.so.6                     [.] 0x0000000000038605
     0.01%             6  waybar           libc.so.6                     [.] 0x000000000015aa55
     0.01%             6  waybar           libc.so.6                     [.] 0x00000000000385ae
     0.01%             6  waybar           [unknown]                     [k] 0xffffffffb8c00184
     0.01%             6  waybar           waybar                        [.] 0x0000000000060b5c
     0.01%             6  waybar           [unknown]                     [k] 0xffffffffb7ccc443
     0.01%             6  waybar           [unknown]                     [k] 0xffffffffb8c0013f
     0.01%             6  waybar           [unknown]                     [k] 0xffffffffb7ccc3f4
     0.00%             5  waybar           libc.so.6                     [.] 0x0000000000036a3e
     0.00%             5  waybar           [unknown]                     [k] 0xffffffffb8bc6a4d
     0.00%             5  waybar           libc.so.6                     [.] 0x0000000000037a20
     0.00%             5  waybar           [unknown]                     [k] 0xffffffffb8c00197
     0.00%             5  waybar           [unknown]                     [k] 0xffffffffb7ddff61
     0.00%             2  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001cf214
     0.00%             2  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001cfdf8
     0.00%             1  powerprofilesct  libgirepository-1.0.so.1.0.0  [.] 0x000000000000d075
     0.00%             4  waybar           libc.so.6                     [.] 0x0000000000038572
     0.00%             4  waybar           [unknown]                     [k] 0xffffffffb7dc5cfd
     0.00%             4  waybar           [unknown]                     [k] 0xffffffffb8bc36d0
     0.00%             4  waybar           [unknown]                     [k] 0xffffffffb7db143f
     0.00%             4  waybar           [unknown]                     [k] 0xffffffffb7dcacfa
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001cf294
     0.00%             4  waybar           [unknown]                     [k] 0xffffffffb8bc3598
     0.00%             3  waybar           [unknown]                     [k] 0xffffffffb7ccc446
     0.00%             3  waybar           [unknown]                     [k] 0xffffffffb7c986c9
     0.00%             3  waybar           [unknown]                     [k] 0xffffffffb8c00178
     0.00%             3  waybar           [unknown]                     [k] 0xffffffffb7ddfacc
     0.00%             3  waybar           [unknown]                     [k] 0xffffffffb7dca641
     0.00%             3  waybar           libc.so.6                     [.] 0x000000000003853e
     0.00%             3  waybar           [unknown]                     [k] 0xffffffffb8be44bb
     0.00%             2  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001cfbe0
     0.00%             2  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c43b5
     0.00%             2  powerprofilesct  [unknown]                     [k] 0xffffffffb8bba59b
     0.00%             2  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c4d38
     0.00%             2  powerprofilesct  libpython3.11.so.1.0          [.] _PyObject_GenericGetAttrWithDict
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001cee73
     0.00%             1  waybar           libstdc++.so.6.0.32           [.] std::istream::ignore()
     0.00%             2  powerprofilesct  libc.so.6                     [.] 0x000000000015aee1
     0.00%             2  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c4d2b
     0.00%             2  powerprofilesct  ld-linux-x86-64.so.2          [.] 0x00000000000093d3
     0.00%             2  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c4d17
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001cf660
     0.00%             2  waybar           libglib-2.0.so.0.7800.1       [.] 0x000000000005b198
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x0000000000209969
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x000000000022577d
     0.00%             1  waybar           libglib-2.0.so.0.7800.1       [.] g_pointer_bit_lock
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001cfdff
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c1948
     0.00%             2  waybar           [unknown]                     [k] 0xffffffffb7db0db7
     0.00%             2  waybar           libc.so.6                     [.] 0x00000000000379c8
     0.00%             2  waybar           libc.so.6                     [.] 0x000000000003860e
     0.00%             2  waybar           libc.so.6                     [.] 0x0000000000037a16
     0.00%             2  waybar           [unknown]                     [k] 0xffffffffb7d49399
     0.00%             2  waybar           [unknown]                     [k] 0xffffffffb7dc8eab
     0.00%             2  waybar           libc.so.6                     [.] 0x000000000015a73f
     0.00%             2  waybar           [unknown]                     [k] 0xffffffffb8c001de
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001fedf9
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001d7851
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c4caa
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001cfe6b
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x000000000023de47
     0.00%             1  powerprofilesct  libc.so.6                     [.] __cxa_finalize
     0.00%             1  waybar           libharfbuzz.so.0.60822.0      [.] 0x00000000000b2cf3
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb817fe6d
     0.00%             1  gdbus            [unknown]                     [k] 0xffffffffb88f4234
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001e0c65
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001f23a2
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001dd1c5
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001f2323
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] _PyErr_NormalizeException
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000002e4305
     0.00%             1  powerprofilesct  libglib-2.0.so.0.7800.1       [.] 0x000000000004410e
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001d1956
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001ceeaa
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] PyTraceBack_Here
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] PyObject_GC_Del
     0.00%             1  powerprofilesct  libc.so.6                     [.] 0x00000000001581d9
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001e079e
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001cc50e
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb80c98e1
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001dd25d
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001dd118
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] PyUnicode_New
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c11be
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb8be44bb
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x000000000024379b
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] PyUnicode_Concat
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001df8c7
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb80484c1
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x000000000029f483
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001dfb33
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000002401f6
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c4dbf
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c4f1c
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x0000000000200477
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb834fb92
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] PyLong_FromLong
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] _PyObject_GC_NewVar
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001db6db
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001d8ffe
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c26c7
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] PyList_Append
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001f7863
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001cd8cd
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x000000000024f6c5
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001cf419
     0.00%             1  waybar           libstdc++.so.6.0.32           [.] std::filesystem::__cxx11::path::_List::_Impl_deleter::operator()(std::filesystem::__cxx11::path::_List::_Impl*) const
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb8c012a0
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x0000000000234edc
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001f2352
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001f23ca
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001d7844
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001f0cd2
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001f7064
     0.00%             1  waybar           libc.so.6                     [.] cfree
     0.00%             1  powerprofilesct  libc.so.6                     [.] malloc
     0.00%             1  powerprofilesct  libc.so.6                     [.] wcsrtombs
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c4d62
     0.00%             1  powerprofilesct  libc.so.6                     [.] 0x0000000000091747
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c43c3
     0.00%             1  powerprofilesct  ld-linux-x86-64.so.2          [.] 0x0000000000009422
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c7094
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c4caf
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c4c9b
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000002b4ba4
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001db5a0
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] PyModule_AddIntConstant
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c7082
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001caa86
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c4cf8
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] PyDict_SetItemString
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001cf218
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] PyDict_SetDefault
     0.00%             1  powerprofilesct  ld-linux-x86-64.so.2          [.] 0x0000000000009167
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x000000000021ff7f
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb80c91c1
     0.00%             1  powerprofilesct  libpython3.11.so.1.0          [.] 0x00000000001c46c3
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb80b9862
     0.00%             1  powerprofilesct  libc.so.6                     [.] 0x000000000015a751
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb8bbaa6b
     0.00%             1  waybar           libcairo.so.2.11800.0         [.] cairo_surface_get_font_options
     0.00%             1  powerprofilesct  libc.so.6                     [.] 0x000000000015a747
     0.00%             1  sh               libc.so.6                     [.] 0x000000000015aa79
     0.00%             1  powerprofilesct  ld-linux-x86-64.so.2          [.] 0x0000000000009ffd
     0.00%             1  powerprofilesct  libc.so.6                     [.] 0x000000000015aa6c
     0.00%             1  powerprofilesct  libc.so.6                     [.] 0x000000000015a71b
     0.00%             1  sh               libc.so.6                     [.] 0x000000000015a751
     0.00%             1  waybar           libc.so.6                     [.] 0x0000000000038621
     0.00%             1  waybar           libc.so.6                     [.] 0x00000000000379c4
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7c07afe
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7f3671f
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7d2cbac
     0.00%             1  waybar           libc.so.6                     [.] 0x0000000000038530
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7de1ac2
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb8bc6ad0
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb8c01c56
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7d1f1ca
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7e0534d
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7de18e1
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7d4b384
     0.00%             1  waybar           libc.so.6                     [.] 0x0000000000075e26
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb834fb92
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7dcaa1d
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb8bc20df
     0.00%             1  waybar           libc.so.6                     [.] 0x0000000000038589
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7d2ca83
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb8c015f7
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb8bc35dd
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7dcaa40
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7de1998
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7e05337
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7dca4ec
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7de18cf
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7ddfe75
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7dca4e9
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7dca616
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7dccc80
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7d48fcf
     0.00%             1  waybar           waybar                        [.] 0x0000000000067373
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7d50db5
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb8c00185
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb8bbf46b
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb834fabd
     0.00%             1  waybar           libc.so.6                     [.] 0x0000000000038b2a
     0.00%             1  sh               libc.so.6                     [.] 0x000000000015a74b
     0.00%             1  waybar           libgobject-2.0.so.0.7800.1    [.] g_type_check_instance_is_a
     0.00%             1  sh               libc.so.6                     [.] 0x000000000015a747
     0.00%             1  powerprofilesct  libc.so.6                     [.] 0x000000000015a547
     0.00%             1  sh               libc.so.6                     [.] 0x000000000015aa55
     0.00%             1  waybar           libc.so.6                     [.] 0x000000000009926f
     0.00%             1  waybar           libgdk-3.so.0.2406.32         [.] gdk_window_get_frame_clock
     0.00%             1  sh               ld-linux-x86-64.so.2          [.] 0x0000000000009422
     0.00%             1  sh               ld-linux-x86-64.so.2          [.] 0x0000000000009631
     0.00%             1  sh               [unknown]                     [k] 0xffffffffb7f625e0
     0.00%             1  sh               ld-linux-x86-64.so.2          [.] 0x000000000000960e
     0.00%             1  sh               ld-linux-x86-64.so.2          [.] 0x0000000000009697
     0.00%             1  waybar           libnl-3.so.200.26.0           [.] nl_send_sync
     0.00%             2  waybar           libc.so.6                     [.] write
     0.00%             1  gdbus            libgobject-2.0.so.0.7800.1    [.] g_object_ref
     0.00%             1  waybar           libc.so.6                     [.] 0x000000000009cab4
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7de9412
     0.00%             1  powerprofilesct  libgio-2.0.so.0.7800.1        [.] g_dbus_connection_get_type
     0.00%             1  gdbus            libc.so.6                     [.] 0x0000000000091781
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7fcbe85
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb80e8f39
     0.00%             1  waybar           libc.so.6                     [.] 0x000000000009c0c8
     0.00%             1  waybar           libstdc++.so.6.0.32           [.] std::_V2::system_category()
     0.00%             2  waybar           libspdlog.so.1.12.0           [.] spdlog::details::registry::get_default_raw()
     0.00%             1  waybar           libglib-2.0.so.0.7800.1       [.] 0x0000000000058e73
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb80e8345
     0.00%             1  powerprofilesct  libgio-2.0.so.0.7800.1        [.] 0x0000000000106455
     0.00%             1  gmain            [unknown]                     [k] 0xffffffffb7c428a4
     0.00%             2  waybar           libc.so.6                     [.] pthread_mutex_lock
     0.00%             2  waybar           libglibmm-2.4.so.1.3.0        [.] Glib::DispatchNotifier::send_notification(Glib::Dispatcher*)
     0.00%             1  waybar           libc.so.6                     [.] __libc_calloc
     0.00%             1  gdbus            libc.so.6                     [.] 0x000000000009b54b
     0.00%             1  pool-spawner     libglib-2.0.so.0.7800.1       [.] g_queue_peek_tail_link
     0.00%             3  waybar           [unknown]                     [k] 0xffffffffb7fbfe44
     0.00%             1  gdbus            libgio-2.0.so.0.7800.1        [.] g_socket_get_type
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb80c2907
     0.00%             1  powerprofilesct  libglib-2.0.so.0.7800.1       [.] g_mutex_unlock
     0.00%             2  waybar           [unknown]                     [k] 0xffffffffb7de80f6
     0.00%             1  waybar           libglibmm-2.4.so.1.3.0        [.] Glib::Dispatcher::emit()
     0.00%             4  waybar           waybar                        [.] 0x0000000000067cd5
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb80e8f50
     0.00%             1  waybar           libglib-2.0.so.0.7800.1       [.] 0x000000000005b048
     0.00%             6  waybar           [unknown]                     [k] 0xffffffffb8c012a0
     0.00%             1  waybar           waybar                        [.] 0x000000000009f1e4
     0.00%             1  waybar           libglib-2.0.so.0.7800.1       [.] 0x00000000000b9109
     0.00%             1  powerprofilesct  libgio-2.0.so.0.7800.1        [.] g_buffered_input_stream_get_type
     0.00%             1  gdbus            [unknown]                     [k] 0xffffffffb806ffb8
     0.00%             1  powerprofilesct  libc.so.6                     [.] 0x000000000015aec4
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb80e8ea1
     0.00%             2  waybar           [unknown]                     [k] 0xffffffffb7de4ca4
     0.00%             1  pool-spawner     [unknown]                     [k] 0xffffffffb8043b0d
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb8bbf45e
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb834fb8f
     0.00%             5  waybar           [vdso]                        [.] __vdso_clock_gettime
     0.00%             1  waybar           libglib-2.0.so.0.7800.1       [.] 0x00000000000b90e2
     0.00%             1  waybar           libjsoncpp.so.25              [.] Json::Value::asString[abi:cxx11]() const
     0.00%             1  gdbus            libglib-2.0.so.0.7800.1       [.] 0x00000000000562e9
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb833ed74
     0.00%             4  waybar           libc.so.6                     [.] pthread_setcancelstate
     0.00%             1  gdbus            [unknown]                     [k] 0xffffffffb8b9d462
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7de8090
     0.00%             1  waybar           libc.so.6                     [.] pthread_once
     0.00%             1  waybar           libnl-3.so.200.26.0           [.] nlmsg_alloc
     0.00%             1  pool-spawner     [unknown]                     [k] 0xffffffffb8bdf2c5
     0.00%             1  waybar           libglib-2.0.so.0.7800.1       [.] g_source_get_time
     0.00%             1  waybar           waybar                        [.] 0x000000000014da94
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7fcbf2b
     0.00%             1  powerprofilesct  libgio-2.0.so.0.7800.1        [.] g_buffered_input_stream_fill
     0.00%             2  powerprofilesct  libglib-2.0.so.0.7800.1       [.] 0x000000000008b9a4
     0.00%             1  waybar           waybar                        [.] 0x0000000000067621
     0.00%             8  waybar           libc.so.6                     [.] clock_gettime
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb8b9e1ec
     0.00%             2  waybar           [unknown]                     [k] 0xffffffffb8b9b515
     0.00%             1  waybar           libgdk-3.so.0.2406.32         [.] 0x00000000000385c4
     0.00%             1  gdbus            libc.so.6                     [.] 0x000000000009aa4d
     0.00%             1  waybar           libjsoncpp.so.25              [.] Json::Value::CZString::operator<(Json::Value::CZString const&) const
     0.00%             1  powerprofilesct  libglib-2.0.so.0.7800.1       [.] g_main_context_push_thread_default
     0.00%             1  powerprofilesct  libgobject-2.0.so.0.7800.1    [.] g_type_check_instance_is_a
     0.00%             1  waybar           waybar                        [.] 0x000000000006f8c2
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb7f48c69
     0.00%             2  waybar           libstdc++.so.6.0.32           [.] std::chrono::_V2::steady_clock::now()
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb81e26cd
     0.00%             1  powerprofilesct  libc.so.6                     [.] _setjmp
     0.00%             3  waybar           libglib-2.0.so.0.7800.1       [.] 0x000000000005aedf
     0.00%             3  waybar           [unknown]                     [k] 0xffffffffb7d645ed
     0.00%             2  waybar           libglib-2.0.so.0.7800.1       [.] g_mutex_lock
     0.00%             1  gdbus            libglib-2.0.so.0.7800.1       [.] 0x000000000005aeb2
     0.00%             1  gdbus            libglib-2.0.so.0.7800.1       [.] 0x000000000005b198
     0.00%             1  powerprofilesct  libgio-2.0.so.0.7800.1        [.] g_socket_condition_timed_wait
     0.00%             1  powerprofilesct  libglib-2.0.so.0.7800.1       [.] g_mutex_lock
     0.00%             1  powerprofilesct  libglib-2.0.so.0.7800.1       [.] g_private_set
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb81e12a4
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb8b9b490
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb8b9b4ef
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb8bbf410
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb8c00050
     0.00%             1  powerprofilesct  [unknown]                     [k] 0xffffffffb8c012a4
     0.00%             1  waybar           libc.so.6                     [.] 0x00000000000895b6
     0.00%             1  waybar           libc.so.6                     [.] 0x000000000008b950
     0.00%             1  waybar           libc.so.6                     [.] 0x000000000008f018
     0.00%             1  waybar           libglib-2.0.so.0.7800.1       [.] 0x00000000000b8289
     0.00%             1  waybar           waybar                        [.] 0x000000000006f75e
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7fc76a2
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7fcbbb1
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7fcbe16
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7fcc4d6
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb7fe33cb
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb80b332c
     0.00%             1  waybar           [unknown]                     [k] 0xffffffffb8b9b490

Weirdly enoguh, can't repro it on the master branch (yet).

@Alexays
Copy link
Owner

Alexays commented Nov 3, 2023

Released 0.9.24 with the faulty commit reverted.

@Alexays Alexays closed this as completed Nov 3, 2023
@eguiraud eguiraud mentioned this issue Nov 3, 2023
@joshrandall8478
Copy link

I believe I'm affected by the same issue which is caused by last commit squeezed in before release: #2629.

It adds reaping of child command process to the main reap queue:

reap_mtx.lock();
reap.push_back(child_pid);
reap_mtx.unlock();

ignoring the fact that it's already being reaped through close:

exit_code = WEXITSTATUS(util::command::close(fp_, pid_));

inline int close(FILE* fp, pid_t pid) {
int stat = -1;
pid_t ret;
fclose(fp);
do {
ret = waitpid(pid, &stat, WCONTINUED | WUNTRACED);
if (WIFEXITED(stat)) {
spdlog::debug("Cmd exited with code {}", WEXITSTATUS(stat));
} else if (WIFSIGNALED(stat)) {
spdlog::debug("Cmd killed by {}", WTERMSIG(stat));
} else if (WIFSTOPPED(stat)) {
spdlog::debug("Cmd stopped by {}", WSTOPSIG(stat));
} else if (WIFCONTINUED(stat)) {
spdlog::debug("Cmd continued");
} else if (ret == -1) {
spdlog::debug("waitpid failed: {}", strerror(errno));
} else {
break;
}
} while (!WIFEXITED(stat) && !WIFSIGNALED(stat));
return stat;
}

Both of these now race as to who will be the first to successfully waitpid for the child. One will handle process exit successfully, while the other will fail with ECHILD. Unfortunately none of them handles ECHILD correctly:

* `SIGCHLD` handler will accumulate such pids indefinitely in `reap`:
  https://github.com/Alexays/Waybar/blob/c6a9b63189c1617606ba726f3fd7af5a80df97d6/src/main.cpp#L29-L41

* `close` will start infinite loop
  https://github.com/Alexays/Waybar/blob/c6a9b63189c1617606ba726f3fd7af5a80df97d6/include/util/command.hpp#L49-L65

I would revert 1c1a39f possibly followed by improving waitpid error handling.

now i finally understand what you were saying 💀 thank you for your help :)

@pengshp
Copy link

pengshp commented Nov 4, 2023

OMG! My fan has been spinning all day. 🔥

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working performance regression
Projects
None yet
Development

No branches or pull requests