-
-
Notifications
You must be signed in to change notification settings - Fork 65
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
ArcadeDB Studio java.lang.ArrayIndexOutOfBoundsException #1165
Comments
Ok, fixed in the |
The problem remains,
If not, the exception is thrown at the Studio login time:
|
…rofiled resource is accessed during the rebuild of policies Related to issue #1165
I can't reproduce this. Did you create additional users/groups? |
No, I didn't. The only security/access related thing I did was setting arcadedb.server.rootPassword |
FYI, I run the embedded server DB on a Linux box with 6 Xeon cores and 64GB of RAM using openJDK 11.0.20 |
Getting ArrayIndexOutOfBoundsException frequently as well... both on Docker and running locally. I am calling via remote url, and just running simple cypher commands,e.g. 'MATCH (n) RETURN COUNT(n) AS count' It works for a bit then, gets stuck on this error (on a query that run okay before.. .then I have to restart ArcadeDB for it to work again. |
From an initial analysis, this issue is related to the concurrent change of schema: the concurrent thread reads a hybrid of the old and new schema causing such an exception. @decentropy do you have the stack trace of the exception when that happens? It would be very valuable to understand if the issue is in the Cypher module or somewhere else. Cypher and Gremlin both implicitly create new types from queries, so this is a validation of the analysis mentioned above. |
Good news! I was able to create a multi-threads test case where a schema is updated while the security is continuously modified. Working on a fix. |
@happy-kitty in your case, the database is created on |
The issue has been fixed. Not 100% sure if @happy-kitty case is different from @decentropy. Please comment this issue if you see the same issue again. |
Sure here you go... just happened again with query "MATCH (n) RETURN COUNT(n) AS count" called via remote/HTTP. It occasionally crashes, and I haven't figured out a pattern or cause.
|
If I remember correctly, in my case the DB gets created. We put ArcadeDB on hold because of this |
@decentropy can you try with the latest snapshot in the main branch? |
Using 23.11.1 (for a couple hours)... |
sorry to say it does still crash with cypher (on 23.11.1)
|
Fixed by #1341 |
Discussed in #1161
Originally posted by happy-kitty July 10, 2023
Trying "General" discussion as I got no response when asked this question at "Q&A".
Running ArcadeDB 23.6.1 in embedded server mode, the root password is set.
I can successfully log in the ArcadeDB Studio, see schema, server settings, metrics etc. SQL query select from schema:types works fine.
Most/all SQL queries throw ArrayIndexOutOfBoundsException, e.g. select count(*) from AnyOfDefinedTypes where AnyOfDefinedTypes is defined, has one bucket and zero or one records in it. Type inheritance isn't used.
Any idea? I ran into the same thing with 23.5.1 - while 23.4.1 works fine.
Here's the exception stack:
java.lang.ArrayIndexOutOfBoundsException: Index 151 out of bounds for length 1
at com.arcadedb.server.security.ServerSecurityDatabaseUser.requestAccessOnFile(ServerSecurityDatabaseUser.java:83)
at com.arcadedb.database.EmbeddedDatabase.checkPermissionsOnFile(EmbeddedDatabase.java:571)
at com.arcadedb.engine.Bucket.iterator(Bucket.java:245)
at com.arcadedb.query.sql.executor.SelectExecutionPlanner.isEmptyNoSubclasses(SelectExecutionPlanner.java:1480)
at com.arcadedb.query.sql.executor.SelectExecutionPlanner.handleClassAsTargetWithIndex(SelectExecutionPlanner.java:1454)
at com.arcadedb.query.sql.executor.SelectExecutionPlanner.handleClassAsTarget(SelectExecutionPlanner.java:1217)
at com.arcadedb.query.sql.executor.SelectExecutionPlanner.handleClassAsTarget(SelectExecutionPlanner.java:1206)
at com.arcadedb.query.sql.executor.SelectExecutionPlanner.handleFetchFromTarget(SelectExecutionPlanner.java:756)
at com.arcadedb.query.sql.executor.SelectExecutionPlanner.createExecutionPlan(SelectExecutionPlanner.java:143)
at com.arcadedb.query.sql.parser.SelectStatement.createExecutionPlan(SelectStatement.java:212)
at com.arcadedb.query.sql.parser.SelectStatement.execute(SelectStatement.java:206)
at com.arcadedb.query.sql.parser.Statement.execute(Statement.java:73)
at com.arcadedb.query.sql.SQLQueryEngine.command(SQLQueryEngine.java:101)
at com.arcadedb.database.EmbeddedDatabase.command(EmbeddedDatabase.java:1293)
at com.arcadedb.server.ServerDatabase.command(ServerDatabase.java:446)
at com.arcadedb.server.http.handler.PostCommandHandler.executeCommand(PostCommandHandler.java:120)
at com.arcadedb.server.http.handler.PostCommandHandler.execute(PostCommandHandler.java:88)
at com.arcadedb.server.http.handler.DatabaseAbstractHandler.execute(DatabaseAbstractHandler.java:98)
at com.arcadedb.server.http.handler.AbstractHandler.handleRequest(AbstractHandler.java:124)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859)
at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
at java.base/java.lang.Thread.run(Thread.java:834)
The text was updated successfully, but these errors were encountered: