Fixes #3751: mapParallel2 with rebind error #3810
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #3751
The error seems to be due to the rebind introduced in 5.9 (https://github.com/neo4j-contrib/neo4j-apoc-procedures/blob/dev/extended/src/main/java/apoc/cypher/CypherExtended.java# L248).
Sporadically the rebind throws (under the hood), an exception like:
or:
Resolution
Discussing it here,
the problem seems to be due to the rebind, which instead of using the
@Context Transaction tx
as a transaction should use the one coming fromdb.beginTx()
.In this way, it works correctly.
The same method is also used by other procedures, but these also work with
@Context Transaction tx
, maybe because they don't create parallel partitions.I created tests to be sure, so I would leave it like this so as not to cause breaking-change.
Also because is not possible to change this one, since it would give an error
A query with 'CALL { ... } IN TRANSACTIONS' can only be executed in an implicit transaction