-
Notifications
You must be signed in to change notification settings - Fork 14
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
actkbd randomly stops working, until restarted. #2
Comments
I am hitting this bug for many years, on many computers. Randomly, sometimes 3
times a day, sometimes once a month, actkbd does not 'react' to events. Oddly
enough, the process does work, when I attach to ith with strace I do see that
it does work, lines like:
read(3, "\227\311AX\0\0\0\0\1n\3\0\0\0\0\0\4\0\4\0\240\0\0\0\227\311AX\0\0\0\0"..., 4096) = 72
If it's reading, then it's not completely blocked...
Pops up, but nothing more happens, And after I restart the actkbd process I can
see that right after read, it runs sendto, along with many, many other calls
that results in executing what was configured.
read(3, "\227\311AX\0\0\0\0\1n\3\0\0\0\0\0\4\0\4\0\240\0\0\0\227\311AX\0\0\0\0"..., 4096) = 72
sendto(4, "<29>Dec 2 20:20:55 actkbd[3227]"..., 88, MSG_NOSIGNAL, NULL, 0) = 88
rt_sigaction(SIGINT, {SIG_IGN, [], SA_RESTORER, 0x3f51233250}, {SIG_DFL, [], SA_RESTORER, 0x3f51233250}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_IGN, [], SA_RESTORER, 0x3f51233250}, {SIG_DFL, [], SA_RESTORER, 0x3f51233250}, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
clone(strace: Process 3900 attached
actkbd is started as:
/usr/bin/actkbd -c /etc/actkbd.conf -D -q -x -l -p /var/run/actkbd.pid -d /dev/input/event4
Can you please comment on this?
...but here's the catch: actkbd (a) is single-threaded and (b) uses
system() in the same thread to execute commands. Yes, I know, not
nice; the whole program is basically a hack - it just worked well
enough for me and a few friends back when I wrote it.
Bottom-line is, it can conceivably miss key events, esp. if you are
launching commands without the '&' shell character at the end that
pushes them to the background. Missing a key _release_ means that it
then keeps thinking that some key is still pressed, which messes-up
the key mask matching.
If you can figure out which key is wedged, then pressing and releasing
it should fix the issue.
You can probably confirm whether this is what is happening by
increasing the verbosity level e.g. to 9 and checking your syslog
messages. Keep in mind that doing that will essentially dump all key
presses - including passwords and credit card numbers - to your system
log. Beware.
I have not really worked on actkbd for a very very long time. I have
some vague plans about bringing it into this decade by replacing
libcfg+ with something that still exists, adding proper threading and
multi-device support, maybe even dropping all the macros for some
clean C++.
But all of that basically amounts to a full-blown rewrite,
and I find myself rather pressed for time, so I'd not hold my breath
if I were you... Of course, I am open to pull requests, should any
find their way to my inbox :-)
|
I think I've got the same issue, and weirdly it seems to resolve itself as soon as I look at the logs with journalctl. I.e. I'll just run
Just to note: for my case, I do add |
Hello,
I am hitting this bug for many years, on many computers. Randomly, sometimes 3 times a day, sometimes once a month, actkbd does not 'react' to events. Oddly enough, the process does work, when I attach to ith with strace I do see that it does work, lines like:
Pops up, but nothing more happens, And after I restart the actkbd process I can see that right after read, it runs sendto, along with many, many other calls that results in executing what was configured.
actkbd is started as:
Can you please comment on this?
The text was updated successfully, but these errors were encountered: