I have an issue with a invisible cluster (92); the cluster and the class do 
not exist in the database but there are references to them in the system 
somehow.

The NotificationPolicy class should actually exist, but I suspect that the 
update failed silently (since the cluster reference exists in the system 
but not the class).

Does anyone have an idea about how I can solve this issue?

This is how I found the problem and what I did to try to solve it.

1) Rebuilding the index
*orientdb {database}> rebuild index Admin.__CVID*

Rebuilding index(es)...
Error: com.orientechnologies.orient.core.index.OIndexException: Error on 
rebuilding the index for clusters: [monitor, excludeperiod, asset,
notificationpolicy, teamcalendar, team, admin,usercategory, report, 
service, account, user]

Error: java.lang.IllegalArgumentException: Cluster 'notificationpolicy' was 
not found

2) Checking if the cluster/class exists, compare result with an actually 
nonexisting class
*orientdb {database}> select * from notificationpolicy*

Error: 
com.orientechnologies.orient.core.exception.OCommandExecutionException: 
Error on execution of command: sql.select * from notificationpolicy

Error: java.lang.ArrayIndexOutOfBoundsException: 92

*orientdb {database}> select * from abcxxx*

Error: com.orientechnologies.orient.core.exception.OQueryParsingException: 
Error on parsing query
Query:  abcxxx
------^

Error: 
com.orientechnologies.orient.core.exception.OCommandExecutionException: 
Class 'ABCXXX' was not found in current database

3) Trying to drop and recreate the index (note. the Admin.__CVID is a base 
class that contains the index field for the sub-classes)
*orientdb {database}> drop index Admin.__CVID *
 
*orientdb {database}> CREATE INDEX Admin.__CVID on Admin (__CVID) UNIQUE*

Creating index...
Error: com.orientechnologies.orient.core.index.OIndexException: Cluster 
with id 92 does not exist.

4) Trying to remove cluster and class 
*orientdb {database}> drop cluster 92*

Dropping cluster [92] in database database...
Error: com.orientechnologies.orient.core.exception.OSchemaException: Cannot 
drop the cluster 'null' because the classes ['NotificationPolicy'] are 
bound to it. Drop these classes before dropping the cluster
  
*orientdb {database}> drop class NotificationPolicy*

Error: 
com.orientechnologies.orient.core.exception.OCommandExecutionException: 
Error on execution of command: sql.drop class NotificationPolicy

Error: java.lang.IllegalArgumentException: Cluster segment #92 does not 
exist in database 'database'

5) What does 1 with errors mean, and what can I do with it?
*orientdb {database}> check database*
Check of storage completed in 61ms. 1 with errors. 

---------------------------------

The cluster (92) does not show up when I run 'list clusters'.

Regards,
Roar

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to