Closed
Description
ArcadeDB Version: ArcadeDB Server v23.1.1 (build aa687e4/1673895089679/main)
JDK Version: OpenJDK (zsrc11.54.25-jdk11.0.14.1) [I think]
OS: Windows 11 Home (21H2)
Sometimes when I run a cypher query or perhaps just connect / disconnect from the database, the CPU usage increases to 100% and gets stuck there. It stays at 100% even when I am not running any queries.
I don't know what causes it to happen as sometimes I can do a lot of queries without this happening, and sometimes after the first few seconds of queries it gets stuck.
My guess would be that there is something accidentally jumps into a 'busy wait' mode where it gets stuck checking something in an infinite for loop. Would be really nice to have a fix for this.
Metadata
Metadata
Assignees
Labels
Type
Projects
Relationships
Development
No branches or pull requests
Activity
[-]Running queries ocassionally causes 100% CPU usage[/-][+]Running queries ocassionally causes ArcadeDB to get stuck at 100% CPU usage[/+]lvca commentedon Feb 8, 2023
Are you using the setting
-Darcadedb.profile=high-performance
or-Darcadedb.asyncOperationsQueueImpl=fast
?lvca commentedon Feb 8, 2023
Or are you running o Docker? We have another issue about that.
shasaur commentedon Feb 8, 2023
I'm not using any special setting (as far as I know), just running
server.bat
. So I just tested about half an hour of production usage, and it did not seem to happen. However, I think I closed it during a running transaction and it shot up to 70% and got stuck there.Could it be happening when connections are closed during running transactions or something like that?
shasaur commentedon Feb 8, 2023
Oh actually, the only thing is that I'm using the Postgres plug-in. And no, I'm not using Docker.
lvca commentedon Feb 8, 2023
This was never found in production, AFAIK, so it could be the Postgres plugin. Is there any chance you can do a dump of the JVM when that happens? You can execute a
jstack <pid>
.shasaur commentedon Feb 8, 2023
Done! Here's the JVM dump and also the console output of the DB.
shasaur commentedon Feb 8, 2023
Also just a note, now that (I think) it's happening only between connections, it's not super high priority for me as my use is based only on a single connection. Though I leave this prioritisation up to you.
lvca commentedon Feb 9, 2023
Thanks for the dump! The issue seems to be in the postgres threads:
The reading from the TCP/IP socket causes tons of exceptions. Checking on it.
7 remaining items