-
Notifications
You must be signed in to change notification settings - Fork 871
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
Getting ODistributedRecordLockedException creating edge in distributed mode #5012
Comments
....Thank you! |
ODistributedRecordLockedException is raised when a concurrent operation is executed on that record. is this your case? What level of concurrency do you have? In case of TX, it' automatically repeated up to 10 times (by default, setting "distributed.concurrentTxMaxAutoRetry"), so to receive that message seems you have high contention on the same vertices. Can you confirm? |
Hi Luca, Thanks |
Hi, any idea? |
@stefomak @lvca i got this error too.i try to use spark-orientdb-connector to access distributed orientdb 2.1.12 with two nodes.i raise a question in their github page.do u guys have any findings? |
I got this error too. And as @lvca pointed out that this error is raised when a concurrent operation is executed on that record. I have Vertex A connected to Vertex B1 and Vertex B2 with the same edge class. Any idea how to solve this? |
@nishantkumar1292 what release? |
I am running two server nodes in distributed mode in OrientDB 2.2.17 . |
Please use v2.2.21. |
Started using v2.2.21 but now I am not able to start the server nodes. Every node starts as master and the members list does not show the other server. The distributed mode was running fine in 2.2.17. I have the same hazelcast.xml file. |
Please check the network configuration in |
The servers and connections are working fine. However I am still getting the
I am running Any idea why is it happening? |
@nishantkumar1292 Was that exception given during REPAIR DATABASE? |
yes |
+1 @nishantkumar1292 Is this a bug with Orientdb 2.2.21, or any other way to get this resolved? |
Hi guys, All the client code should be like:
In this way any concurrent operation will be retried (in this case up to 10 times). |
We are getting this error when executing delete command over an edge class |
@lvca Can you please reply? |
@roots-ai can you execute a |
The command
@lvca Can you please look at the log and tell us where are we going wrong. We added the following code as you suggested:
But the retry continues for indefinite time and the record is not unlocked. So this does not solve our issue. |
Hi @lvca ! We've shared the output above, please help. |
We also have another major issue here!! |
@nishantkumar1292 what do you mean for erased? What content? Records, Clusters or the entire database? I'm sure in the log you can find the reason why the folder is empty, no space left on device or lack of permissions to the directory? Please send logs, otherwise it's impossible to receive help. |
About this issue, I see there is a problem here:
The locks are kept for way too much time causing this problem. It looks like the background thread that checks the timeout is not working. I'm investigating it. |
Question: is it possible you're running some commands non in transaction? |
@lvca Answer to your question: Earlier we were running the queries with About emptying of database: The database folder gets erased - all the contents of the folder. The folder is there but the contents are erased.
|
About the original error, I found a bug with non-tx locks. Fixed in 2.2.x branch. About the other error, during the installation of the database, something went wrong, but it should be in the logs. Do you still have them? |
This was the latest log I had which was related to the issue from the logs folder. Are database installation logs stored separately? If no, then I might not have it. Any way fix this issue.. @lvca . We are using Ruby and active-orient to enter data and hitting other queries into OrientDB. |
Hi @lvca ...any updates how do we resolve the |
@nishantkumar1292 this bug has been fixed. You can try with last 2.2.x snapshot. |
I still get this in 2.2.29. I am more than happy to conclude my investigation by switching to saving all my edges in transactions. It looks like in my case it's the right solution to get around this one. Just wondering what other people think of this, should I wait for this bug to be fix or make sure that the codebase uses transations whenever I save my edges ? |
Nope, sorry won't work. |
hi @decebal, This commit refer to 3.0.0 SNAPSHOT, you don't have this change in 2.2.29. Regards |
Hi, I have orientdb 2.1-SNAPSHOT
running with the -cluster option, but I have only one node running (to make it simpler).
When my java application tries to commit a transaction that involves creations of vertices and edges I get:
Error on transaction commit
com.orientechnologies.orient.server.distributed.task.ODistributedRecordLockedException
at com.orientechnologies.orient.server.distributed.task.OTxTask.execute(OTxTask.java:102)
at com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.executeOnLocalNode(OHazelcastPlugin.java:805)
at com.orientechnologies.orient.server.hazelcast.ODistributedWorker.onMessage(ODistributedWorker.java:296)
at com.orientechnologies.orient.server.hazelcast.ODistributedWorker.run(ODistributedWorker.java:119)
In the last three days I tried a lot of combination in order to isolate the problem.
I found out that if the transaction creates only vertices (no edges!!) it doesn't fire any exception.
Do you know any workaround, please?
I'm getting crazy...............
The text was updated successfully, but these errors were encountered: