I've noticed that my roccateventhandler process is using 100% cpu, and that there are two of them.
I have a Kone XTD, and the settings and everything is working fine. It is just the high cpu usage that is a problem.
(Nevermind that all cores are running at 100%, I'm compiling lots of stuff in the background as well)
Anonymous
Oh, I forgot to add: I'm using roccat-tools version 5.1.1 on Gentoo. I will test if an update to 5.4.0 will fix the problem.
Closed due to inactivity
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
The update did not fix the problem. Why was the bug closed?
Here's a screenshot that I just took of the process, using 100%. This is using 5.4.0.
Last edit: Peter Asplund 2016-10-16
I closed this bug report because you didn't tell me if the update fixed this for three weeks.
So, this problem persists. In you first post you have two processes for the same user which should not be possible. In the second screenshot from yesterday it's not visible if there are two processes. The normal way roccateventhandler gets started is via /etc/xdg/autostart/roccateventhandler.desktop. Your first investigation should be why and from where roccateventhandler is started twice.
Thank you for your answer, I realised when I re-read my report that I had stated that I would test with a newer version. I forgot to provide feedback on that comment.
I'm not at home at the moment, so I will check out the status of how it is currently starting when I get home.
I'm checking this out now. I still have 2 processes, so that might be the reason for the 100% issue.
I do have an roccatveenthandler.desktop autostart file in /etc/xdg/autostart/. But I don't know why it starts twice...
One thing to test if the double process is the problem:
Do a 'killall roccateventhandler' and restart it from the shell. If all is well, the double start is the problem.
To find out where it's occupied:
Do a debug build of roccat-tools (add -DCMAKE_BUILD_TYPE=Debug in cmake call), connect gdb to the process going bonkers (gdb --pid=PID) and show me a backtrace (bt).
I've found the answer to the question about several processes listed in htop! Since I only got one process when I ran 'ps aux | grep -i roccateventhandler' I figured there was something wrong with htop, but I didn't really know specifically 'what' that was.
Now I downloaded 5.5.0 release and added the Debug build flag to it, started that, and connected GDB to it. Weirdly enough I now had 4 processes when I checked it with htop!
That got me thinking, and I explored the issue more with ps vs htop, and I tried listing ps with threads, and that was the key. For some reason, htop seems to list all threads!
This is the screenshot when appyling the "tree" setting to htop, so I guess you're running with 4 threads now.
I just started it, and started GDB connected to it, so I will get back to you when it starts consuming 100% CPU.
After updating to 5.5.0, and building it myself with the Debug flag, I'm yet to see the 100% frenzy. I have GDB attached to it, and monitoring it with htop, so I'll keep my eyes peeled.
I'm finally seeing the issue again! I've attached to it using GDB (gdb --pid=676).
This is what I'm getting from gdb and backtrace. I tried checking threads and list as well.
I hope it gives you some guidance...
I just wanted to pop by and say that I'm still seeing this issue every day.
I am now using roccat-tools 5.7.0.
Last edit: Peter Asplund 2018-03-11
Hi, I might have found a (quite hacky) fix for the bug maxing out a single CPU core.
For me, it appeared when trying to use the Ryos MK FX on nixos.
When changing any kind of settings via roccatryosmkfxconfig, the whole thing would freeze for a long time, and roccateventhandler would just max out a single core of my CPU. After waiting like half an hour, the setting would actually change - but the event handler would continue to just indefinitely max out the core.
After some digging, I found the culprit:
In 'roccat_window_monitor.c', there lives the following function:
using gdb, I found that the program was always stuck at either the line with the if clause, or the line with the return statement.
I then implemented the following trivial (but very ugly) fix:
This fix is quite ugly, and I still don't really understand why the recursing loop even happens in the first place - but it fixes the problem. The driver will not hang anymore, and the ryosmkfxconfig works (mostly, but for the purpose of this post it is fully functional as I would expect). No more hanging and no more wierd maxing out the cpu core.
If anyone is willing to investigate this further, I would be very interested to know what caused the problem in the first place - please update this thread, if you find anything. For now and for me, this journey ends here, as my problem has been solved,
Released roccat-tools-5.9.1 which hopefully fixes this along other things.
Last edit: Stefan Achatz 2025-10-26