-
Notifications
You must be signed in to change notification settings - Fork 212
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
liquidctl status
hangs every once in a while on an (up-to-date) Commander Core
#505
Comments
Sometimes a _CMD_OPEN_ENDPOINT command fails to produce a ready (00:) response, blocking after several non-ready (f0:) responses instead. If this happens, just retry the command and hope for the best... TODO: only do this with commands known to be idempotent (Hopefully) Fixes liquidctl#505.
Looking at your WIP proposal for a fix, it occurred to me: are you perhaps running some other instance of liquidctl (accessing that same device) while your Because what your fix effectively does is assume that the device will sometimes simply forget to reply (successfully) to (Specifically, IIRC, the report queue is global and, on Linux/hidraw, shared by all readers). |
No. Even if I did, on my system It does look suspicious, though. I'm not sure how I could verify that no one else is accessing the device concurrently. Any ideas? |
Oh, right... by the way, to which file do you attach the lock for your wrapper?
Hm, maybe Apart from those, there are is the kernel's tracing functionally... |
Hm, re-reading the man page for I still vaguely remember reading about some some way to globally (and easily) trace all syscalls on a system... |
It doesn't really matter, so I just do it on the liquidctl executable itself:
There's bpftrace (and friends) but I really hoped to avoid dealing with it :-) |
Yeah, as long as every instance agrees, it really doesn't matter. By the way, are you sure
Maybe that's what I was thinking of... Anyway, if I'm reading the docs correctly, the However, since you know the expected interval between
would be enough to at least see if further investigation is even necessary? (Since the time resolution is rather limited, it might be good increase the |
Yes, pretty sure, $PATH is set globally via systemd:
I have confirmed with bpftrace that there are indeed no other processes attempting to access the hidraw node. Terminal 1:
Terminal 2:
|
I try to reproduce your problem i install the latest yay version for liquidctl-git and I'm on Arch too. |
It does not necessarily happen right away. Might be tens of minutes. Try to leave it running for some time? Otherwise I'm not sure what the problem is then. @jonasmalacofilho suggested I might have something concurrently accessing the hidraw node and breaking the protocol, but I have verified that it's not the case (at least in userspace). Any other ideas? |
Happens to me as well. Just that it happens immediately, I don't have to wait. |
After wait few minutes it's stuck for me too. |
Would any of y'all mind getting a capture in Wireshark of this issue happening? |
This comment was marked as outdated.
This comment was marked as outdated.
I post a Wireshark capture file, freeze appears at the end during few seconds before i stop the capture. |
Looking at that it appears to freeze on a read command |
Yes i will do it today |
Sorry for the delay, it tooks me a long time to reproduce the hang (between one or two hour) with Wireshark capture and --debug option.
I had to edit the the log and capture files to be able to upload them. |
Thank you for doing that. |
Tested during 5 hours without any freeze, but usually the freeze can happen after several hours so @intelfx can you test it ? |
Apologies for the delay. Testing now. |
Yep, it looks like #513 works for me. |
Description of the problem
I'm trying to use liquidctl (after applying #501) on a Commander Core device I have (as part of the H100i ELITE CAPELLIX CLC).
If I run
liquidctl status
in a loop each second, eventually an invocation hangs indefinitely and never exits.According to strace, it hangs on a
read()
from a/dev/hidrawN
node corresponding to the Commander Core.Steps to reproduce
watch -n1 liquidctl status
Logs
liquidctl status --debug
output from an invocation reproducing the issue:Additional information about the system
liquidctl-git
AUR packageliquidctl --version
:liquidctl v1.11.0.dev41+ga2b4391 (Linux-5.19.9-arch1pf4-1-x86_64-with-glibc2.36)
The text was updated successfully, but these errors were encountered: