{"action":"created","issue":{"url":"https://api.github.com/repos/orientechnologies/orientdb/issues/6380","repository_url":"https://api.github.com/repos/orientechnologies/orientdb","labels_url":"https://api.github.com/repos/orientechnologies/orientdb/issues/6380/labels{/name}","comments_url":"https://api.github.com/repos/orientechnologies/orientdb/issues/6380/comments","events_url":"https://api.github.com/repos/orientechnologies/orientdb/issues/6380/events","html_url":"https://github.com/orientechnologies/orientdb/issues/6380","id":163688200,"number":6380,"title":"Concurrent INSERTs and DELETEs cause deadlock.","user":{"login":"volth","id":508305,"avatar_url":"https://avatars.githubusercontent.com/u/508305?v=3","gravatar_id":"","url":"https://api.github.com/users/volth","html_url":"https://github.com/volth","followers_url":"https://api.github.com/users/volth/followers","following_url":"https://api.github.com/users/volth/following{/other_user}","gists_url":"https://api.github.com/users/volth/gists{/gist_id}","starred_url":"https://api.github.com/users/volth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/volth/subscriptions","organizations_url":"https://api.github.com/users/volth/orgs","repos_url":"https://api.github.com/users/volth/repos","events_url":"https://api.github.com/users/volth/events{/privacy}","received_events_url":"https://api.github.com/users/volth/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/orientechnologies/orientdb/labels/bug","name":"bug","color":"ededed"},{"url":"https://api.github.com/repos/orientechnologies/orientdb/labels/storage%20team","name":"storage team","color":"c5def5"},{"url":"https://api.github.com/repos/orientechnologies/orientdb/labels/waiting%20reply","name":"waiting reply","color":"eb6420"}],"state":"open","locked":false,"assignee":{"login":"laa","id":105066,"avatar_url":"https://avatars.githubusercontent.com/u/105066?v=3","gravatar_id":"","url":"https://api.github.com/users/laa","html_url":"https://github.com/laa","followers_url":"https://api.github.com/users/laa/followers","following_url":"https://api.github.com/users/laa/following{/other_user}","gists_url":"https://api.github.com/users/laa/gists{/gist_id}","starred_url":"https://api.github.com/users/laa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laa/subscriptions","organizations_url":"https://api.github.com/users/laa/orgs","repos_url":"https://api.github.com/users/laa/repos","events_url":"https://api.github.com/users/laa/events{/privacy}","received_events_url":"https://api.github.com/users/laa/received_events","type":"User","site_admin":false},"assignees":[{"login":"laa","id":105066,"avatar_url":"https://avatars.githubusercontent.com/u/105066?v=3","gravatar_id":"","url":"https://api.github.com/users/laa","html_url":"https://github.com/laa","followers_url":"https://api.github.com/users/laa/followers","following_url":"https://api.github.com/users/laa/following{/other_user}","gists_url":"https://api.github.com/users/laa/gists{/gist_id}","starred_url":"https://api.github.com/users/laa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laa/subscriptions","organizations_url":"https://api.github.com/users/laa/orgs","repos_url":"https://api.github.com/users/laa/repos","events_url":"https://api.github.com/users/laa/events{/privacy}","received_events_url":"https://api.github.com/users/laa/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/orientechnologies/orientdb/milestones/88","html_url":"https://github.com/orientechnologies/orientdb/milestones/2.2.x%20(next%20hotfix)","labels_url":"https://api.github.com/repos/orientechnologies/orientdb/milestones/88/labels","id":1768027,"number":88,"title":"2.2.x (next hotfix)","description":"","creator":{"login":"robfrank","id":413587,"avatar_url":"https://avatars.githubusercontent.com/u/413587?v=3","gravatar_id":"","url":"https://api.github.com/users/robfrank","html_url":"https://github.com/robfrank","followers_url":"https://api.github.com/users/robfrank/followers","following_url":"https://api.github.com/users/robfrank/following{/other_user}","gists_url":"https://api.github.com/users/robfrank/gists{/gist_id}","starred_url":"https://api.github.com/users/robfrank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robfrank/subscriptions","organizations_url":"https://api.github.com/users/robfrank/orgs","repos_url":"https://api.github.com/users/robfrank/repos","events_url":"https://api.github.com/users/robfrank/events{/privacy}","received_events_url":"https://api.github.com/users/robfrank/received_events","type":"User","site_admin":false},"open_issues":157,"closed_issues":8,"state":"open","created_at":"2016-05-16T08:28:14Z","updated_at":"2016-07-05T10:45:47Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2016-07-04T14:28:37Z","updated_at":"2016-07-05T12:19:22Z","closed_at":null,"body":"## Expected behavior and actual behavior\r\n\r\nConcurrent INSERTs and DELETEs cause deadlock.\r\n![img](http://i.imgur.com/SzjrjA4.png)\r\n\r\nStacktrace (taken with jvisualvm)\r\n```\r\nFound one Java-level deadlock:\r\n=============================\r\n\"Thread-7\":\r\n  waiting for ownable synchronizer 0x00000000d59c41d0, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),\r\n  which is held by \"Thread-6\"\r\n\"Thread-6\":\r\n  waiting for ownable synchronizer 0x00000000d59c41a0, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),\r\n  which is held by \"Thread-7\"\r\n\r\nJava stack information for the threads listed above:\r\n===================================================\r\n\"Thread-7\":\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\t- parking to wait for  <0x00000000d59c41d0> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)\r\n\tat java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:943)\r\n\tat com.orientechnologies.common.concur.lock.OOneEntryPerKeyLockManager.acquireLock(OOneEntryPerKeyLockManager.java:173)\r\n\tat com.orientechnologies.common.concur.lock.OOneEntryPerKeyLockManager.acquireLock(OOneEntryPerKeyLockManager.java:100)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager.acquireExclusiveLockTillOperationComplete(OAtomicOperationsManager.java:464)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager.startAtomicOperation(OAtomicOperationsManager.java:175)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager.startAtomicOperation(OAtomicOperationsManager.java:140)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.startAtomicOperation(ODurableComponent.java:123)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.OClusterPositionMap.remove(OClusterPositionMap.java:411)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.deleteRecord(OPaginatedCluster.java:806)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doDeleteRecord(OAbstractPaginatedStorage.java:3205)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.deleteRecord(OAbstractPaginatedStorage.java:1151)\r\n\tat com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeDeleteRecord(ODatabaseDocumentTx.java:2139)\r\n\tat com.orientechnologies.orient.core.tx.OTransactionNoTx.deleteRecord(OTransactionNoTx.java:274)\r\n\tat com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.delete(ODatabaseDocumentTx.java:2563)\r\n\tat com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.delete(ODatabaseDocumentTx.java:101)\r\n\tat com.orientechnologies.orient.core.record.ORecordAbstract.delete(ORecordAbstract.java:296)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelete.result(OCommandExecutorSQLDelete.java:325)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLResultsetAbstract.pushResult(OCommandExecutorSQLResultsetAbstract.java:278)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.addResult(OCommandExecutorSQLSelect.java:734)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.handleResult(OCommandExecutorSQLSelect.java:666)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearchRecord(OCommandExecutorSQLSelect.java:615)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1638)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1553)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:510)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:473)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:72)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2577)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2523)\r\n\tat com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:78)\r\n\tat com.orientechnologies.orient.core.sql.query.OSQLAsynchQuery.run(OSQLAsynchQuery.java:74)\r\n\tat com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:33)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelete.execute(OCommandExecutorSQLDelete.java:205)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:72)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2577)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2523)\r\n\tat com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:69)\r\n\tat Hello$$anon$2.run(Hello.scala:752)\r\n\"Thread-6\":\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\t- parking to wait for  <0x00000000d59c41a0> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)\r\n\tat java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:943)\r\n\tat com.orientechnologies.common.concur.lock.OOneEntryPerKeyLockManager.acquireLock(OOneEntryPerKeyLockManager.java:173)\r\n\tat com.orientechnologies.common.concur.lock.OOneEntryPerKeyLockManager.acquireLock(OOneEntryPerKeyLockManager.java:100)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager.acquireExclusiveLockTillOperationComplete(OAtomicOperationsManager.java:464)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager.startAtomicOperation(OAtomicOperationsManager.java:175)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager.startAtomicOperation(OAtomicOperationsManager.java:140)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.startAtomicOperation(ODurableComponent.java:123)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.createRecord(OPaginatedCluster.java:441)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doCreateRecord(OAbstractPaginatedStorage.java:3023)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commitEntry(OAbstractPaginatedStorage.java:3584)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1344)\r\n\tat com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:555)\r\n\tat com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:109)\r\n\tat com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2665)\r\n\tat com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2634)\r\n\tat Hello$$anon$1.run(Hello.scala:728)\r\n\r\nFound 1 deadlock.\r\n\r\n```\r\nExpected no deadlock.\r\n\r\n\r\n## Steps to reproduce the problem\r\n\r\nRun the code and wait a little (usually less than a minute)\r\n```\r\n      locally {\r\n        val db = new ODatabaseDocumentTx(\"plocal:databases/TestDb\")\r\n        FileUtils.deleteDirectory(new java.io.File(\"databases/TestDb\"))\r\n        db.create()\r\n        db.close()\r\n\r\n        db.open(\"admin\", \"admin\")\r\n        try {\r\n          println(Try(db.command[OCommandRequest](new OCommandSQL(\"CREATE CLASS Ping\")).execute[Object]()))\r\n        } finally {\r\n          db.close()\r\n        }\r\n      }\r\n\r\n      new Thread {\r\n        override def run {\r\n          while(true) {\r\n            // insert a simple record\r\n            val db = new ODatabaseDocumentTx(\"plocal:databases/TestDb\")\r\n            db.open(\"admin\", \"admin\")\r\n            try {\r\n              db.begin(OTransaction.TXTYPE.OPTIMISTIC)\r\n              try {\r\n                val d = new ODocument(\"Ping\")\r\n                d.field(\"time\", System.currentTimeMillis)\r\n                d.save()\r\n                db.commit()\r\n                print(GREEN+\".\"+RESET)\r\n              } catch {\r\n                case e: Throwable =>\r\n                  e.printStackTrace\r\n                  db.rollback()\r\n              }\r\n            } finally {\r\n              db.close()\r\n            }\r\n            Thread sleep 5\r\n          }\r\n        }\r\n      }.start()\r\n\r\n      new Thread {\r\n        override def run {\r\n          while(true) {\r\n            // delete records older than 5 sec\r\n            val db = new ODatabaseDocumentTx(\"plocal:databases/TestDb\")\r\n            db.open(\"admin\", \"admin\")\r\n            try {\r\n              val now = System.currentTimeMillis\r\n              println(s\"${RED}deleting:${RESET}\")\r\n              val rc = db .command[OCommandRequest](new OCommandSQL(\"delete from Ping where time < ?\")) .execute[Int]((now - 5000).asInstanceOf[AnyRef])\r\n              println(s\"${RED}deleted old msgs ${BOLD}${rc}${RESET+RED} in ${BOLD}${System.currentTimeMillis - now}${RESET+RED} ms${RESET}\")\r\n            } finally {\r\n              db.close()\r\n            }\r\n            Thread sleep 5000\r\n          }\r\n        }\r\n      }.start()\r\n```\r\n\r\n## Important Questions\r\n\r\n### Runninng Mode\r\n- [ x] Embedded, using PLOCAL access mode\r\n- [  ] Embedded, using MEMORY access mode\r\n- [ x] Remote\r\n\r\nI have the issue with embedded PLOCAL, remote PLOCAL and remote MEMORY (single-server setup, no distribution). In the remote case, the deadlock occurs in the OrientDB server process.\r\n\r\n### Misc\r\n- [  ] I have a distributed setup with multiple servers. How many? \r\n- [  ] I'm using the Enterprise Edition\r\n\r\n### OrientDB Version\r\n- [  ] v2.0.x - Please specify last number: \r\n- [  ] v2.1.x - Please specify last number: \r\n- [x ] v2.2.x - Please specify last number: 2.2.3 community edition\r\n\r\n### Operating System\r\n- [  ] Linux\r\n- [  ] MacOSX\r\n- [ x] Windows (Windows Server 2008, Java 8)\r\n- [  ] Other Unix\r\n- [  ] Other, name? \r\n\r\n### Java Version\r\n- [  ] 6\r\n- [ x] 7\r\n- [ x] 8\r\n"},"comment":{"url":"https://api.github.com/repos/orientechnologies/orientdb/issues/comments/230462568","html_url":"https://github.com/orientechnologies/orientdb/issues/6380#issuecomment-230462568","issue_url":"https://api.github.com/repos/orientechnologies/orientdb/issues/6380","id":230462568,"user":{"login":"volth","id":508305,"avatar_url":"https://avatars.githubusercontent.com/u/508305?v=3","gravatar_id":"","url":"https://api.github.com/users/volth","html_url":"https://github.com/volth","followers_url":"https://api.github.com/users/volth/followers","following_url":"https://api.github.com/users/volth/following{/other_user}","gists_url":"https://api.github.com/users/volth/gists{/gist_id}","starred_url":"https://api.github.com/users/volth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/volth/subscriptions","organizations_url":"https://api.github.com/users/volth/orgs","repos_url":"https://api.github.com/users/volth/repos","events_url":"https://api.github.com/users/volth/events{/privacy}","received_events_url":"https://api.github.com/users/volth/received_events","type":"User","site_admin":false},"created_at":"2016-07-05T12:19:22Z","updated_at":"2016-07-05T12:19:22Z","body":"Although jvisualvm does not detect deadlock the bug is still here: both threads (inserter and deleter) got stuck.\r\nchecked with ''develop'' and ''2.2.x'' branches\r\n```\r\n\"Thread-7\" #20 prio=5 os_prio=0 tid=0x0000000018986000 nid=0x196f4 waiting on condition [0x000000005b51e000]\r\n   java.lang.Thread.State: WAITING (parking)\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\t- parking to wait for  <0x00000000d5ba0360> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:967)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1283)\r\n\tat java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:727)\r\n\tat com.orientechnologies.common.concur.resource.OSharedResourceAdaptive.acquireSharedLock(OSharedResourceAdaptive.java:168)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:620)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doReadRecord(OAbstractPaginatedStorage.java:3283)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:2925)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:1035)\r\n\tat com.orientechnologies.orient.core.db.document.SimpleRecordReader.readRecord(SimpleRecordReader.java:15)\r\n\tat com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeReadRecord(ODatabaseDocumentTx.java:1885)\r\n\tat com.orientechnologies.orient.core.tx.OTransactionNoTx.loadRecord(OTransactionNoTx.java:107)\r\n\tat com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:1657)\r\n\tat com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.load(ODatabaseDocumentTx.java:101)\r\n\tat com.orientechnologies.orient.core.iterator.OIdentifiableIterator.readCurrentRecord(OIdentifiableIterator.java:290)\r\n\tat com.orientechnologies.orient.core.iterator.ORecordIteratorClusters.hasNext(ORecordIteratorClusters.java:166)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.serialIterator(OCommandExecutorSQLSelect.java:1636)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.fetchFromTarget(OCommandExecutorSQLSelect.java:1553)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.executeSearch(OCommandExecutorSQLSelect.java:510)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:473)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:72)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2599)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2545)\r\n\tat com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:79)\r\n\tat com.orientechnologies.orient.core.sql.query.OSQLAsynchQuery.run(OSQLAsynchQuery.java:74)\r\n\tat com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:33)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelete.execute(OCommandExecutorSQLDelete.java:205)\r\n\tat com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:72)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2599)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2545)\r\n\tat com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:68)\r\n\tat Hello$$anon$2.run(Hello.pl.scala:111)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Thread-6\" #19 prio=5 os_prio=0 tid=0x0000000018c2d800 nid=0x2b3c4 waiting on condition [0x000000005c8de000]\r\n   java.lang.Thread.State: WAITING (parking)\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\t- parking to wait for  <0x00000000d565c030> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)\r\n\tat java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:943)\r\n\tat com.orientechnologies.common.concur.lock.OOneEntryPerKeyLockManager.acquireLock(OOneEntryPerKeyLockManager.java:173)\r\n\tat com.orientechnologies.common.concur.lock.OOneEntryPerKeyLockManager.acquireLock(OOneEntryPerKeyLockManager.java:100)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager.acquireExclusiveLockTillOperationComplete(OAtomicOperationsManager.java:464)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager.startAtomicOperation(OAtomicOperationsManager.java:175)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager.startAtomicOperation(OAtomicOperationsManager.java:140)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.startAtomicOperation(ODurableComponent.java:123)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.OClusterPositionMap.allocate(OClusterPositionMap.java:242)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.allocatePosition(OPaginatedCluster.java:422)\r\n\tat com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1341)\r\n\tat com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:554)\r\n\tat com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:108)\r\n\tat com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2702)\r\n\tat com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2671)\r\n\tat Hello$$anon$1.run(Hello.pl.scala:85)\r\n\r\n```"}}
{"actor":{"display_login":"volth"}}