Open NikitaIvanovV opened 1 year ago
Most of the time it happens when I work in nvim or when I exit nvim or less (I think at that point foot switches from displaying alternative screen to the main one, although I do not see how it would affect dwl).
I tested with Alacritty and the error does not happen there.
Also, I firgured out that the error occures after this line when the function returns 0:
https://github.com/djpohly/dwl/blob/797e0c74b2cbf4a49f83c9269abec06f3293d00c/dwl.c#L1890
I don't know if it's the same underlying issue, but I have also observed occasional "full system freeze" issues, with no recovery possible or known workaround.
Whenever that happens, I forcibly power-off the machine. Because I'm mostly using emacs, foot and firefox, I'm led to believe that it could be a pure Firefox problem.
Found these issues:
https://github.com/swaywm/sway/issues/7519 https://github.com/swaywm/wlroots/issues/2087 https://codeberg.org/dnkl/foot/issues/350 https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3507
I tried adding export WLR_DRM_NO_ATOMIC=1
and apparently it fixes the freeze issues. Instead I started getting some rendering artifacts but it's tolerable.
I tend to think it's a dwl issue because I used river before, which is based on wlroots as well, and it had no issues.
I don't know if it's the same underlying issue, but I have also observed occasional "full system freeze" issues, with no recovery possible or known workaround.
This is a different issue, see https://github.com/djpohly/dwl#status-information
@NikitaIvanovV can you check #423?
I started getting artifacts similar to those when I set WLR_DRM_NO_ATOMIC=1
, however, sometimes (less often than before) window freezes but it only requires one random key press to unfreeze it. Freezes that affect entire dwl still persist when I start/kill dwl a bunch of times.
To clarify, foot freezes happen on my laptop with scale set to 2, on my monitor it does not happen. Freezes that affect entire dwl happen on both outputs.
Btw, to kill dwl I usually do loginctl kill-session ''
. Could it be a reason why I get a freeze after several times of doing it because systemd didn't allow dwl to free some resources?
Looks like they fixed it in river by implementing damage tracking: https://github.com/riverwm/river/pull/296/files
Freezes that affect entire dwl still persist when I start/kill dwl a bunch of times.
Can you SSH in and run this command gdb --pid=$(pidof dwl) --ex 'set logging enabled on' --ex 'bt full' --ex 'exit'
and send me gdb.txt?
Btw, to kill dwl I usually do
loginctl kill-session ''
. Could it be a reason why I get a freeze after several times of doing it because systemd didn't allow dwl to free some resources?
I don't think so, when a program is terminated the kernel does free all the resources associated.
Looks like they fixed it in river by implementing damage tracking: https://github.com/riverwm/river/pull/296/files
We use scene API, which implements damage tracking for us.
To some reason freezing after restarting dwl multiple times stopped happenning. Maybe it was got fixed in wlroots?
As for freezing in foot, it's still happenning. And I've noticed that it happens way less with alpha setting set to 1.0.
I don't know if it's the same underlying issue, but I have also observed occasional "full system freeze" issues, with no recovery possible or known workaround.
- This happens when using Firefox or some of its variants such as LibreWolf in Wayland mode, with sites that periodically update parts of the page for notifications (LinkedIn, GitHub, ProtonMail, etc.).
- Keys processing seems to be also be impacted and stops working (switching to tty or whatever)
Whenever that happens, I forcibly power-off the machine. Because I'm mostly using emacs, foot and firefox, I'm led to believe that it could be a pure Firefox problem.
- I've seen this happen with Arch Linux and Slackware so far.
- The issue only manifests itself randomly when I have a browser such as Firefox open, as far as I know
You can also reproduce it by opening st in one tag, chromium in another, and quickly switching between tags until the system freezes.
Glad to known that at least it's easily reproducible @fbushstone
I was still experiencing a full system freeze (the dwl virtual machine
) multiple times per day and it became too frustrating.
firefox
) and a terminal (foot
with GNU screen
and GNU emacs
running)Go back to the dwl virtual machine
and then notice that it's completely frozen (similar to those old X locked up bugs)
For now, I've moved all my browsing activities to a dedicated virtual machine with my old dwm
setup.
I still run dwl
in some virtual machines, but with very dedicated purposes ("password-manager-vm", "program-and-do-it-all-in-emacs-vm", etc.).
@fbushstone, @yveszoundi, can you SSH in and run this command gdb --pid=$(pidof dwl) --ex 'set logging enabled on' --ex 'bt full' --ex 'exit' and send me gdb.txt?
You can also reproduce it by opening st in one tag, chromium in another, and quickly switching between tags until the system freezes.
This sounds like stdout is getting filled up. Have you tried closing it properly? You can use <&-
Maybe @PalanixYT wild guesses are correct (printstatus
function??), I can't really tell.
@sevz17 , I forgot that I'm running dwl-guile on my machines nowadays, so I'll try providing a gdb output for dwl master
later. Meanwhile, maybe what I've collected could give few hints.
pkgin
)no xwayland here
), GNU screen terminal with just a ksh prompt (no pesonal activity)gdb --pid=REPLACE_ME --ex 'set logging on' --ex 'bt full' --ex 'quit'
Maybe @PalanixYT wild guesses are correct (
printstatus
function??), I can't really tell.
They aren't wild guesses, it's usually the problem when dwl freezes
@sevz17 , I forgot that I'm running dwl-guile on my machines nowadays, so I'll try providing a gdb output for
dwl master
later.
No need, you just need close the stdin of the child process.
Note: next time please make sure you are running upstream dwl.
@sevz17 , I'm not running any child process per say, except for the status bar itself 'dtao'. My configuration is pretty much vanilla.
I'm trying to reproduce it with the latest upstream dwl (with and then without a status bar program running).
Info
dwl version: dwl v0.4-16-g797e0c7 wlroots version: 0.16.2
Description
Sometimes when I use foot and press any key, the window "freezes" and does not update. Once I press some dwl keybinding (e.g. switch to another workspace or change focus), the window gets refreshed. I'm not sure if only foot gets frozen when it happens, I presume the entire screen is affected.
When it happens I get this line in stderr:
This might by unrelated, but in case it is, I have a similar issue that does not happen as often, although it is more severe. Sometimes the screen gets frozen when using any program (not just foot) but it's impossible to fix with a keybinding. The only thing I can do is
quit()
dwl. However, sometimes even that function does not work and I have to forcefully power off my machine. I noticed that it happens after I relaod my config by exiting dwl and going back. I runexec dwl -s dwlb
in~/.bash_profile
.