Open joshdurbin opened 4 years ago
HI @joshdurbin Thank you for the detailed report!
I've run your queries and was able to re-produce the issue, to give some details, this locking we're experiencing has to do with the way we index our nodes. When re-running the queries (skipping index creation) I was able to execute the large MERGE query to completion.
We'll look into it and update here once a fix is available.
In the meantime I can do:
MATCH (p9:person {id: 9}), (prd5:product {id: 5}), (prd6:product {id: 6}), (prd7:product {id: 7}), (prd0:product {id: 0}), (prd4:product {id: 4}), (prd2:product {id: 2}), (prd9:product {id: 9}), (prd8:product {id: 8}), (prd3:product {id: 3}), (prd1:product {id: 1}) CREATE (p9)-[:view {time: 1387897946}]->(prd5), (p9)-[:view {time: 1460909846}]->(prd6), (p9)-[:addtocart {time: 1376191346}]->(prd7), (p9)-[:view {time: 1445321666}]->(prd0), (p9)-[:view {time: 1494459026}]->(prd4), (p9)-[:view {time: 1591052846}]->(prd2), (p9)-[:view {time: 1373205506}]->(prd9), (p9)-[:addtocart {time: 1577717966}]->(prd8), (p9)-[:view {time: 1308607406}]->(prd3), (p9)-[:view {time: 1326255626}]->(prd1), (p9)-[:addtocart {time: 1376191346}]->(prd7), (p9)-[:addtocart {time: 1577717966}]->(prd8), (o14:order {id: 14,subTotal:1088.04,tax:50.6,shipping:15.4,total:1154.04}), (p9)-[:transact {time: 1577717966}]->(o14), (o14)-[:contain]->(prd7), (p9)-[:rating {time: 1577717966, rating: 6}]->(prd7), (o14)-[:contain]->(prd8), (p9)-[:rating {time: 1577717966, rating: 4}]->(prd8)
...which, honestly, is sufficient for my needs.
Howdy!
I'm running into an issue, experiencing a lockup, or a freeze, rather than a crash in a certain scenario. Each test is done with a fresh instance -- no data.
The crash involves re-executing a query where the first attempt at the query returns the error
(error) Type mismatch: expected a map but was Unknown
. The query is a multi match, merge where the merge itself creates edges between existing nodes, creates a new node or nodes, and edges.The dataset to reproduce is small and relatively simple and is show via a redis client instance in monitor mode.
Pass to crash
Monitor for index creation, person and product node creation
Query that results in
Type mismatch
In another client the request is made to execute the multi-match, merge that results in an error:
When this query is executed the Redis Server log reports:
The issue is present for shorter queries too, that aren't truncated, but share the same "components", just a fewer of them.
At this point the server is still and responding. Re-executing the query, however, locks the Redis instance.
Re-run query to lock server
At this point Redis never returns and the server is in a forever blocking state.
A small example, though, that results in a different outcome is the following:
Crashless pass
In this pass, again, the server is stopped and restated. No data is shared.
Monitor for index creation, person and product node creation
Query that results in
Type mismatch
When this query is executed the Redis Server log reports:
Re-run query, receive results
The results of this query are interesting because, from my count, the number of relationships created should be 9, which makes me think I'm doing something stupid.
Version