-
-
Notifications
You must be signed in to change notification settings - Fork 381
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
[BUG] Eww spawns zombie windows and processes #255
Comments
So what's happening here is that you're sending a close window command before the window has been fully opened? Am I getting that right? |
Nope, an open window command before the windows are fully opened. |
could you share the output of |
I have experienced this as well, when restarting eww due to a WM reload. |
Here is the output of And here's the output of |
Interesting, this means that it actually sees the windows as not open, and thus won't close them. I'll investigate |
In my case it does show the window as open. I'd guess that since the ipc server runs at the last of |
Actually problem even gets increased due to 5 connection retries, this makes the startup of the server very slow as well as chances of this bug to happen. I'd suggest to reduce that to 3 or 2. I can see there are two ways for solving this:
Edit: Hybrid of two, have two locks a client side a server side, client can't connect till any of client or server lock is present, server cannot attempt to check daemon running or not until server side lock is not released. This will prevent from making breaking change from completely changing default behavior of open command to start the daemon if not running. |
well, option 2 is what we had before - it made usage a lot more confusing, and generally more anoying to deal with when developing, too. Having a better check such as a file based lock would work, however it runs the issue of not getting cleaned up correctly - some people do do If you care about the startup speed, then do start the daemon manually before, just as you showed - there the daemon won't do it's 5 connection attempts, and thus will be a lot faster to start up. Having some better way of making sure no current server is already running is definitely something worth looking at again - having multiple eww instances running from the same config path is definitely an issue that shouldn't happen |
Can we just move the Also a regain of lock is something what vmware allows, if a vm is not running & lock is present (I'm not exactly sure how they actually do this). |
I had a random thought, can we just apply a lock/mutex for Simple to implement as well as might be free from this unexpected behavior, as the second |
Random thought came to my mind because |
You mean |
Oh right, it forks the process and returns the parent before complete initialization 🤔🤔. But we can still pass the responsibility to the child fork to unlock the lock for these server-commands, then let the next command to proceed... That will solve the issue if I'm not wrong 👀 |
So have a |
It seems like I have a similar issue based on what has been mentioned in the thread although there hasn't been a new update to this issue since September. Has there been an update to this issue or is there a workaround? Thanks |
I may have an issue related to this one too.
It's hard to debug this because it can happen 1 or 5h after daemon launch. I don't know what's the trigger. Maybe xscreensaver? |
Checklist before submitting an issue
Describe the bug
Basically, launching widgets will open your widgets, but sometimes they'll spawn, but refuse to close. Trying
eww kill
will kill the daemon, but these windows will not be closed.killall eww
, however, works.As far as I can predict, this issue happens after making
eww daemon
not a dependency for launching eww widgets. I'm not quite sure though.Reproducing the issue
Use any config and create a widget. Bind the opening of your window to a keybind. Do not launch
eww daemon
. Press your keybind. Eww will not open windows immediately which is expected.Now, before eww has finished opening the window, press the keybind again. Try to close this window with the
eww close
command. It will not work. The only way to remove the window will bekillall eww
.This also happens sometimes randomly even when the daemon is running, but I cannot consistently reproduce it.
Expected behaviour
Eww windows to close with the
eww close
oreww kill
commands.Additional context
Logs:
The log says
Closing all windows
. However, windows aren't closed.The text was updated successfully, but these errors were encountered: