Skip to content
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

Closed
wooshie opened this issue Apr 26, 2013 · 14 comments
Assignees
Labels

Comments

@wooshie
Copy link

wooshie commented Apr 26, 2013

OrientDB release? 1.3.0

What steps will reproduce the problem?

  1. Create a database from console: create database remote:localhost/mydb user pass local graph, fill it with some classes for vertices and edges.
  2. Connect to it from the code:
    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).
  3. Start transaction: database.begin();
  4. do some queries (even select queries)
  5. Try to commit and then close database:
    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:

  • ENVIRONMENT
    • environment.dumpCfgAtStartup = false
    • environment.concurrent = true
  • MEMORY
    • memory.optimizeThreshold = 0.7
  • STORAGE
    • storage.cluster.useNodeIdAsClusterPosition = false
    • storage.keepOpen = false
    • storage.lockTimeout = 5000
    • storage.record.lockTimeout = 5000
    • storage.useTombstones = false
  • CACHE
    • cache.level1.enabled = false
    • cache.level1.size = -1
    • cache.level2.enabled = false
    • cache.level2.size = -1
    • cache.level2.impl = com.orientechnologies.orient.core.cache.ODefaultCache
    • cache.level2.strategy = 0
  • OBJECT
    • object.saveOnlyDirty = false
  • DB
    • db.mvcc = true
    • db.mvcc.throwfast = false
    • db.validation = true
    • db.use.distributedVersion = false
  • NONTX
    • nonTX.recordUpdate.synch = false
    • nonTX.clusters.sync.immediately = manindex
  • TX
    • tx.useLog = true
    • tx.log.fileType = classic
    • tx.log.synch = false
    • tx.commit.synch = false
  • BLUEPRINTS
    • blueprints.graph.txMode = 0
  • INDEX
    • index.auto.rebuildAfterNotSoftClose = true
    • index.auto.lazyUpdates = 10000
    • index.manual.lazyUpdates = 1
  • MVRBTREE
    • mvrbtree.timeout = 5000
    • mvrbtree.nodePageSize = 256
    • mvrbtree.loadFactor = 0.7
    • mvrbtree.optimizeThreshold = 100000
    • mvrbtree.entryPoints = 64
    • mvrbtree.optimizeEntryPointsFactor = 1.0
    • mvrbtree.entryKeysInMemory = false
    • mvrbtree.entryValuesInMemory = false
    • mvrbtree.ridBinaryThreshold = 8
    • mvrbtree.ridNodePageSize = 16
    • mvrbtree.ridNodeSaveMemory = false
  • LAZYSET
    • lazyset.workOnStream = true
  • FILE
    • file.lock = false
    • file.defrag.strategy = 0
    • file.defrag.holeMaxDistance = 32768
    • file.mmap.useOldManager = false
    • file.mmap.lockMemory = true
    • file.mmap.strategy = 0
    • file.mmap.blockSize = 1048576
    • file.mmap.bufferSize = 8192
    • file.mmap.maxMemory = 3106484224
    • file.mmap.overlapStrategy = 2
    • file.mmap.forceDelay = 10
    • file.mmap.forceRetry = 50
  • JNA
    • jna.disable.system.library = true
  • FILE
    • file.cluster.useLHPEPS = false
    • file.cluster.useMemoryLHCluster = false
  • NETWORK
    • network.socketBufferSize = 32768
    • network.lockTimeout = 15000
    • network.socketTimeout = 10000
    • network.retry = 5
    • network.retryDelay = 500
    • network.binary.loadBalancing.enabled = false
    • network.binary.loadBalancing.timeout = 2000
    • network.binary.maxLength = 32736
    • network.binary.readResponse.maxTimes = 20
    • network.binary.debug = false
    • network.http.maxLength = 1000000
    • network.http.charset = utf-8
    • network.http.sessionExpireTimeout = 300
  • PROFILER
    • profiler.enabled = false
    • profiler.config = null
    • profiler.autoDump.interval = 0
    • profiler.autoDump.reset = true
  • LOG
    • log.console.level = info
    • log.file.level = fine
  • CLIENT
    • client.channel.minPool = 1
    • client.channel.maxPool = 5
    • client.connectionPool.waitTimeout = 5000
    • client.channel.dbReleaseWaitTimeout = 10000
  • SERVER
    • server.channel.cleanDelay = 5000
    • server.cache.staticFile = false
    • server.log.dumpClientExceptionLevel = FINE
    • server.log.dumpClientExceptionFullStackTrace = true

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

@lvca
Copy link
Member

lvca commented Apr 26, 2013

We're close to the releasing of 1.4. Can you try it against 1.4.0-SNAPSHOT please?

@wooshie
Copy link
Author

wooshie commented Apr 26, 2013

Thank you for quick reply.
I'd gladly try it against 1.4.0-SNAPSHOT, but wouldn't there be a problem to use 1.3.0 libraries to access it?
I'm grabbing them from Maven Central via Gradle build file and Maven Central doesn't have any libraries for 1.4.0.

@lvca
Copy link
Member

lvca commented Apr 26, 2013

Get 1.4.0-SNAPSHOT by reading here: http://www.orientdb.org/download.htm end of the page.

@xamidi
Copy link

xamidi commented Apr 28, 2013

"We're close to the releasing of 1.4."

I tried to find problems in the current snapshot.
For graphdb I noticed that
"blueprints-orient-graph-2.4.0-SNAPSHOT.jar" needs a class "com.orientechnologies.orient.core.iterator.OMultiCollectionIterator"
but it doesn't already exist.

@lvca
Copy link
Member

lvca commented Apr 29, 2013

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.

@wooshie
Copy link
Author

wooshie commented May 13, 2013

Hi.
As you suggested, we tried to use 1.4.0-SNAPSHOT build and we got another error, this time
com.orientechnologies.common.concur.lock.OLockException: Cannot acquire lock on requested resource: remote:localhost/myapp

OrientDB 1.4.0-SNAPSHOT configuration dump:

  • ENVIRONMENT
    • environment.dumpCfgAtStartup = false
    • environment.concurrent = true
  • MEMORY
    • memory.optimizeThreshold = 0.7
  • JVM
    • jvm.gc.delayForOptimize = 600
  • STORAGE
    • storage.diskCache.bufferSize = 2048
    • storage.useWAL = true
    • storage.wal.cacheSize = 104857600
    • storage.wal.maxSegmentSize = 500
    • storage.wal.maxSize = 10240
    • storage.wal.commitTimeout = 1000
    • storage.wal.fuzzyCheckpointInterval = 36000
    • storage.wal.checkpointIntervalTimeout = 300
    • storage.wal.path = null
    • storage.diskCache.pageSize = 64
    • storage.diskCache.writeQueueLength = 15000
    • storage.diskPageCache.lockTimeOut = 1000
    • storage.lowestFreeListBound = 16
    • storage.cluster.useNodeIdAsClusterPosition = false
    • storage.keepOpen = false
    • storage.lockTimeout = 5000
    • storage.record.lockTimeout = 5000
    • storage.useTombstones = false
  • CACHE
    • cache.level1.enabled = false
    • cache.level1.size = -1
    • cache.level2.enabled = false
    • cache.level2.size = -1
    • cache.level2.impl = com.orientechnologies.orient.core.cache.ODefaultCache
    • cache.level2.strategy = 0
  • OBJECT
    • object.saveOnlyDirty = false
  • DB
    • db.pool.min = 1
    • db.pool.max = 20
    • db.mvcc = true
    • db.mvcc.throwfast = false
    • db.validation = true
    • db.use.distributedVersion = false
  • NONTX
    • nonTX.recordUpdate.synch = false
    • nonTX.clusters.sync.immediately = manindex
  • TX
    • tx.useLog = true
    • tx.log.fileType = classic
    • tx.log.synch = false
    • tx.commit.synch = false
  • BLUEPRINTS
    • blueprints.graph.txMode = 0
  • HASHTABLE
    • hashTable.slitBucketsBuffer.length = 1500
  • INDEX
    • index.auto.rebuildAfterNotSoftClose = true
    • index.auto.lazyUpdates = 10000
    • index.manual.lazyUpdates = 1
  • MVRBTREE
    • mvrbtree.timeout = 5000
    • mvrbtree.nodePageSize = 256
    • mvrbtree.loadFactor = 0.7
    • mvrbtree.optimizeThreshold = 100000
    • mvrbtree.entryPoints = 64
    • mvrbtree.optimizeEntryPointsFactor = 1.0
    • mvrbtree.entryKeysInMemory = false
    • mvrbtree.entryValuesInMemory = false
    • mvrbtree.ridBinaryThreshold = 8
    • mvrbtree.ridNodePageSize = 64
    • mvrbtree.ridNodeSaveMemory = false
  • LAZYSET
    • lazyset.workOnStream = true
  • FILE
    • file.lock = false
    • file.defrag.strategy = 0
    • file.defrag.holeMaxDistance = 32768
    • file.mmap.useOldManager = false
    • file.mmap.autoFlush.timer = 0
    • file.mmap.autoFlush.unusedTime = 60
    • file.mmap.lockMemory = true
    • file.mmap.strategy = 0
    • file.mmap.blockSize = 1048576
    • file.mmap.bufferSize = 8192
    • file.mmap.maxMemory = 134217728
    • file.mmap.overlapStrategy = 2
    • file.mmap.forceDelay = 10
    • file.mmap.forceRetry = 50
  • JNA
    • jna.disable.system.library = true
  • FILE
    • file.cluster.useLHPEPS = false
    • file.cluster.useMemoryLHCluster = false
  • NETWORK
    • network.socketBufferSize = 32768
    • network.lockTimeout = 15000
    • network.socketTimeout = 10000
    • network.retry = 5
    • network.retryDelay = 500
    • network.binary.loadBalancing.enabled = false
    • network.binary.loadBalancing.timeout = 2000
    • network.binary.maxLength = 32736
    • network.binary.readResponse.maxTimes = 20
    • network.binary.debug = false
    • network.http.maxLength = 1000000
    • network.http.charset = utf-8
    • network.http.sessionExpireTimeout = 300
  • PROFILER
    • profiler.enabled = false
    • profiler.config = null
    • profiler.autoDump.interval = 0
    • profiler.autoDump.reset = true
  • LOG
    • log.console.level = info
    • log.file.level = fine
  • COMMAND
    • command.timeout = 0
  • CLIENT
    • client.channel.minPool = 1
    • client.channel.maxPool = 20
    • client.connectionPool.waitTimeout = 5000
    • client.channel.dbReleaseWaitTimeout = 10000
  • SERVER
    • server.channel.cleanDelay = 5000
    • server.cache.staticFile = false
    • server.log.dumpClientExceptionLevel = FINE
    • server.log.dumpClientExceptionFullStackTrace = true

com.orientechnologies.common.concur.lock.OLockException: Cannot acquire lock on requested resource: remote:localhost/myapp
at com.orientechnologies.common.concur.resource.OResourcePool.getResource(OResourcePool.java:44)
at com.orientechnologies.orient.core.db.ODatabasePoolAbstract.acquire(ODatabasePoolAbstract.java:67)
at com.orientechnologies.orient.core.db.ODatabasePoolAbstract.acquire(ODatabasePoolAbstract.java:54)
at com.orientechnologies.orient.core.db.ODatabasePoolBase.acquire(ODatabasePoolBase.java:115)
at com.myapp.util.DatabaseFactory.init(DatabaseFactory.java:37)
at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1614)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:333)
at org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:43)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:329)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.aop.target.SimpleBeanTargetSource.getTarget(SimpleBeanTargetSource.java:34)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.getTarget(CglibAopProxy.java:663)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:614)
at com.myapp.util.DatabaseFactory$$EnhancerByCGLIB$$10ef56f9.getThreadDatabase()
at com.myapp.dao.orientdb.UserExistsOrientdbImpl.getUserBasicData(UserExistsOrientdbImpl.java:33)
at com.myapp.dao.orientdb.UserExistsOrientdbImpl.userExists(UserExistsOrientdbImpl.java:23)
at com.myapp.services.RegisterUser.registerUser(RegisterUser.java:54)
at sun.reflect.GeneratedMethodAccessor48.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
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.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
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:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

@lvca
Copy link
Member

lvca commented May 13, 2013

The request gone in timeout. What operation was you executing? How many concurrent threads?

@wooshie
Copy link
Author

wooshie commented May 13, 2013

The operation we are doing is for example like this one:
String queryString = "select from liked where out = #10:0 and in = #11:0";
OSQLSynchQuery sql = new OSQLSynchQuery(
queryString);
Object[] data = database.query(sql).toArray();

We are running tests with 20, 30, 50 and 100 threads - it failed in all the cases.

@lvca
Copy link
Member

lvca commented May 14, 2013

Are you using remote: connection or local?

@lvca
Copy link
Member

lvca commented May 14, 2013

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") );
OrientVertex v2 = graphdb.getVertex( new ORecordId("#11:0") );
Iterable edges = v1.getEdges( v2, Direction.OUT, "liked" );

This is blazing fast!

@wooshie
Copy link
Author

wooshie commented May 14, 2013

We are using remote for connecting to database.
remote:localhost/myapp

And thanks for advice.

@lvca
Copy link
Member

lvca commented May 14, 2013

Ok,
so first enlarge the "client.channel.maxPool" setting to a value > 20 (default). Try 100 if you've many clients. Then you can enlarge the timeout by enlarging the configuration of: storage.lockTimeout (default 5000 ms).

@ghost ghost assigned lvca May 14, 2013
@lvca lvca closed this as completed May 14, 2013
@wooshie
Copy link
Author

wooshie commented May 15, 2013

We tried setting client.channel.maxPool to 100 and storage.lockTimeout to 30000 - it didn't help.

@lvca
Copy link
Member

lvca commented May 15, 2013

What settings? First try with 20 threads and see what happens

@lvca lvca reopened this May 15, 2013
@lvca lvca closed this as completed May 21, 2013
@lvca lvca modified the milestone: 1.4.0 Aug 5, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

3 participants