You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Expected behavior
Queries wait for the transaction to be finished before returning from an await
Actual behavior
Transactions appear to still be running in the background, resulting in SharedLock issues
MenuContainer.jsx:692 UNWIND $props AS prop
CALL {
WITH prop
MERGE (n:AZBase {objectid: prop.source}) SET n:AZTenant MERGE (m:AZBase {objectid: prop.target}) SET m:AZApp MERGE (n)-[r:AZContains ]->(m)
} IN TRANSACTIONS OF 500 ROWS
MenuContainer.jsx:693 Neo4jError: ForsetiClient[transactionId=29372, clientId=97] can't acquire UpdateLock{owners=client: ForsetiClient[transactionId=29372, clientId=97], client: ForsetiClient[transactionId=29373, clientId=88], , refCount=2} on DEGREES(52015), because holders of that lock are waiting for ForsetiClient[transactionId=29372, clientId=97].
Wait list:SharedLock[
Client[29372] waits for [ForsetiClient[transactionId=29373, clientId=88]],
Client[29373] waits for [ForsetiClient[transactionId=29372, clientId=97]]]
at captureStacktrace (webpack:///./node_modules/neo4j-driver-core/lib/result.js?:239:17)
at new Result (webpack:///./node_modules/neo4j-driver-core/lib/result.js?:59:23)
at Session._run (webpack:///./node_modules/neo4j-driver-core/lib/session.js?:174:16)
at Session.run (webpack:///./node_modules/neo4j-driver-core/lib/session.js?:139:21)
at _callee6$ (webpack:///./src/components/Menu/MenuContainer.jsx?:689:30)
at tryCatch (webpack:///./src/components/Menu/MenuContainer.jsx?:44:2404)
at Generator.eval [as _invoke] (webpack:///./src/components/Menu/MenuContainer.jsx?:44:1964)
at Generator.eval [as next] (webpack:///./src/components/Menu/MenuContainer.jsx?:44:3255)
Note that the query being run isn't even in the post-processing section, and is instead a query from the file upload that was being performed before post-processing runs (which also uses async/await). Relevant code is here
The text was updated successfully, but these errors were encountered:
UNWIND $props AS prop
CALL {
WITH prop
MERGE (n:AZBase {objectid: prop.source}) SET n:AZTenant MERGE (m:AZBase {objectid: prop.target}) SET m:AZApp MERGE (n)-[r:AZContains ]->(m)
} IN TRANSACTIONS OF 500 ROWS
in the referred file.
Could you please enable driver logs and reproduce the error in a small snippet?
Steps to reproduce
Run multiple queries that have a CALL { X } in transactions of Y rows in an async/await context. You can see an example here:
https://github.com/BloodHoundAD/BloodHound/blob/5fb2ef87a56b21f6dfa0e324698729d3ff3af739/src/components/Menu/MenuContainer.jsx#L495
Queries wait for the transaction to be finished before returning from an await
Transactions appear to still be running in the background, resulting in SharedLock issues
Note that the query being run isn't even in the post-processing section, and is instead a query from the file upload that was being performed before post-processing runs (which also uses async/await). Relevant code is here
The text was updated successfully, but these errors were encountered: