Hello,
I'm trying to create a class in a distributed db, and i have the following
exception :
Caused by:
com.orientechnologies.orient.server.distributed.ODistributedException:
Quorum 1 not reached for request=id=6 from=node1396598871178
task=command_sql(create class N extends V cluster 13). Servers in
timeout/conflict are: no server in conflict. Received: {node1396598
871178=waiting-for-response}
at
com.orientechnologies.orient.server.distributed.ODistributedResponseManager.manageConflicts(ODistributedResponseManager.java:297)
at
com.orientechnologies.orient.server.distributed.ODistributedResponseManager.getFinalResponse(ODistributedResponseManager.java:508)
at
com.orientechnologies.orient.server.hazelcast.OHazelcastDistributedDatabase.waitForResponse(OHazelcastDistributedDatabase.java:240)
at
com.orientechnologies.orient.server.hazelcast.OHazelcastDistributedDatabase.send2Nodes(OHazelcastDistributedDatabase.java:161)
at
com.orientechnologies.orient.server.hazelcast.OHazelcastDistributedDatabase.send(OHazelcastDistributedDatabase.java:180)
at
com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.sendRequest(OHazelcastPlugin.java:360)
at
com.orientechnologies.orient.server.distributed.ODistributedStorage.sendRequest(ODistributedStorage.java:772)
at
com.orientechnologies.orient.server.distributed.ODistributedStorage.command(ODistributedStorage.java:176)
at
com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:59)
at
com.orientechnologies.orient.core.metadata.schema.OSchemaShared.createClass(OSchemaShared.java:242)
at
com.orientechnologies.orient.core.metadata.schema.OSchemaShared.createClass(OSchemaShared.java:153)
at
com.orientechnologies.orient.core.metadata.schema.OSchemaShared.createClass(OSchemaShared.java:145)
at
com.orientechnologies.orient.core.metadata.schema.OSchemaShared.createClass(OSchemaShared.java:133)
at
com.orientechnologies.orient.core.metadata.schema.OSchemaShared.getOrCreateClass(OSchemaShared.java:174)
at
com.orientechnologies.orient.core.metadata.schema.OSchemaProxy.getOrCreateClass(OSchemaProxy.java:72)
I have only one node, with read and write quorum set to 1.
I am using OrientDB 1.7-RC2, embedded in my application. The database url
used is "plocal:data/mydb".
After more investigation :
1. OSchemaShared.createClass lock 'rwLock'
2. OSchemaShared call 'execute', which is dispatched by hazelcast to the
same node in another thread
3. OCommandExecutorSQLCreateClass try to find the superclass and call
existsClass in OSchemaProxy -> OSchemaShared wich try to acquire the
previous lock and wait
4. The hazelcast message in [2] failed in timeout, and the propagation
of the exception release the lock
5. The command is executed (but the client get the previous exception)
Is it a bug, or i am doing it wrong ?
Jérémie
--
---
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.