-
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
"com.orientechnologies.orient.core.exception.OStorageException: Error on commit" when trying to use transactions. #1452
Comments
We're close to the releasing of 1.4. Can you try it against 1.4.0-SNAPSHOT please? |
Thank you for quick reply. |
Get 1.4.0-SNAPSHOT by reading here: http://www.orientdb.org/download.htm end of the page. |
"We're close to the releasing of 1.4." I tried to find problems in the current snapshot. |
Hi, the BP 2.4.0 is not the official one but this: https://github.com/nuvolabase/blueprints.git. Hope in days this repository can be merged with the official one. |
Hi. OrientDB 1.4.0-SNAPSHOT configuration dump:
com.orientechnologies.common.concur.lock.OLockException: Cannot acquire lock on requested resource: remote:localhost/myapp |
The request gone in timeout. What operation was you executing? How many concurrent threads? |
The operation we are doing is for example like this one: We are running tests with 20, 30, 50 and 100 threads - it failed in all the cases. |
Are you using remote: connection or local? |
However, in general, it's too expensive to query for an edge once you know the vertices RID. Use something like: OrientVertex v1 = graphdb.getVertex( new ORecordId("#10:0") ); This is blazing fast! |
We are using remote for connecting to database. And thanks for advice. |
Ok, |
We tried setting client.channel.maxPool to 100 and storage.lockTimeout to 30000 - it didn't help. |
What settings? First try with 20 threads and see what happens |
OrientDB release? 1.3.0
What steps will reproduce the problem?
OGraphDatabase database = OGraphDatabasePool.global().acquire(
"remote:localhost/mydb", "user", "pass");
Note: this part is done in a request scoped bean in Spring MVC web app in its init method (this "database" variable is actually a class member, local declaration given here is for readability sake).
try {
database.commit();
} catch (Exception e) {
System.out.println("Commit failed");
e.printStackTrace();
try {
database.rollback();
} catch (Exception e1) {
System.out.println("Rollback failed");
e1.printStackTrace();
}
}
if (database != null) {
database.close();
}
Note: this part is done in a request scoped bean in Spring MVC web app in its destroy method.
If you're using custom settings please provide them below (to dump all the
settings run the application using the JVM argument
-Denvironment.dumpCfgAtStartup=true):
OrientDB 1.3.0 configuration dump:
What is the expected output? What do you see instead?
Expected behaviour is to commit the transaction without problem.
Instead, it breaks with exception:
com.orientechnologies.orient.core.exception.OStorageException: Error on commit
at com.orientechnologies.orient.client.remote.OStorageRemote.handleException(OStorageRemote.java:1447)
at com.orientechnologies.orient.client.remote.OStorageRemote.commit(OStorageRemote.java:1176)
at com.orientechnologies.orient.client.remote.OStorageRemoteThread.commit(OStorageRemoteThread.java:246)
at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:63)
at com.orientechnologies.orient.core.db.record.ODatabaseRecordTx.commit(ODatabaseRecordTx.java:113)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:454)
at com.myapp.util.destroy(DatabaseFactory.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:327)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:253)
at org.springframework.beans.factory.support.DisposableBeanAdapter.run(DisposableBeanAdapter.java:214)
at org.springframework.web.context.request.AbstractRequestAttributes.executeRequestDestructionCallbacks(AbstractRequestAttributes.java:91)
at org.springframework.web.context.request.AbstractRequestAttributes.requestCompleted(AbstractRequestAttributes.java:47)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:954)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinary.createException(OChannelBinary.java:517)
at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinary.handleStatus(OChannelBinary.java:470)
at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynch.beginResponse(OChannelBinaryAsynch.java:145)
at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynch.beginResponse(OChannelBinaryAsynch.java:59)
at com.orientechnologies.orient.client.remote.OStorageRemote.beginResponse(OStorageRemote.java:1832)
at com.orientechnologies.orient.client.remote.OStorageRemote.commit(OStorageRemote.java:1130)
... 36 more
The text was updated successfully, but these errors were encountered: