Comments (6)
I just saw that this is the wrong library. I'll open an issue in the right one ;)
from bolt_sips.
Thank you for the report! Probably not the wrong place, since I forked the Boltex, and kind of maintaining it in Bolt.Sips too?! :) Would it be possible to provide a test case for this issue? Thank you!
Edit:
- I'll watch the development on mschae/boltex/issues/13 and get the feedback from there. Thanks again.
from bolt_sips.
Since there are some tests in this project already it was easier add a test that fails in bolt_sips :)
In the module Query.Test
you can use:
test "executing a Cypher query, with large set of parameters", context do
conn = context[:conn]
cypher = """
MATCH (n:Person {bolt_sips: true})
FOREACH (i IN $largeRange| SET n.test = TRUE )
"""
case Bolt.Sips.query(conn, cypher, %{largeRange: Enum.to_list(0..1_000_000)}) do
{:ok, stats} ->
IO.inspect stats
assert stats["properties-set"] > 0, "Expecting many properties set"
{:error, reason} -> IO.puts "Error: #{reason["message"]}"
end
end
As far as I can see the error is related to what I posted in the issue description:
** (MatchError) no match of right hand side value: <<178, 16, 208, 83, 77, 65, 84, 67, 72, 32, 40, 110, 58, 80, 101, 114, 115, 111, 110, 32, 123, 98, 111, 108, 116, 95, 115, 105, 112, 115, 58, 32, 116, 114, 117, 101, 125, 41, 10, 32, 32, 70, 79, 82, 69, 65, 67, 72, 32, 40, ...>>
lib/boltex/bolt.ex:147: Boltex.Bolt.generate_chunks/3
lib/boltex/bolt.ex:117: Boltex.Bolt.send_messages/3
Note, that the query works if you change largeRange
from 1_000_000
to 1_000
.
from bolt_sips.
Thank you, @adri! I'll add a pointer to @mschae's project, for the reference; mschae/boltex#13. I am curious to test this too, as it seems to be a special use case. Out of pure curiosity, did you stumble upon this issue in a real scenario or it was pure experimental? Never encountered a situation where I had to transport this much data, in a single call.
from bolt_sips.
Thank you @adri and @florinpatrascu. While I implemented multi-chunk messages sending it seems like (contrary to what I believed) I never actually tested it.
Guess what: Untested code doesn't work. Who would've thought.
Sorry about the snafu on my end, I addressed (and believe to have fixed) it in mschae/boltex#15.
from bolt_sips.
Thank you both for reporting the issue and for the support. With Boltex working correctly now (thanks @mschae!), I was able to spot a bug at my end too: the pool was expiring prematurely and a misplaced timeout parameter. @adri - I aded your test to the test suite and it is passing w/o issues on local and remote databases; many thanks for it! I even throttled the remote db, and verified the test still passes, provided the driver configuration is properly tuned. New package published to https://hex.pm/packages/bolt_sips/0.2.1 - and thanks again, both! Cheers!
from bolt_sips.
Related Issues (20)
- Config field for `timeout` not reflected in query timeouts HOT 12
- Just need some clarity about Bolt.Sips.conn
- Connection difficulty -- Bolt.Sips.Internals.Error Port #Port<0.n> is closed HOT 7
- Connection loses after a while: ** (Bolt.Sips.Exception) Port {:sslsocket, {:gen_tcp, #Port<0.25>, :tls_connection, :undefined}, [#PID<0.2789.0>, #PID<0.2786.0>]} is closed HOT 5
- Is routing mode enabled with neo4j+s protocol? HOT 6
- Prepared statements for queries when not possible to use parameters HOT 3
- Looking for new maintainers HOT 10
- Neo4j version 4 support HOT 5
- Going forward HOT 5
- Consistent bad connection state after malformed query: "... You need to\n`ACK_FAILURE` or `RESET` ..." HOT 7
- Road to neo4j 4 and streaming HOT 5
- Bolt.Sips.Protocol disconnected: ** (DBConnection.ConnectionError) HOT 13
- Unable to connect when using authentication HOT 14
- No write operations are allowed directly on this database. Writes must pass through the leader. The role of this server is: FOLLOWER HOT 3
- Hiding credentials in `Bolt.Sips.info`? HOT 3
- Request: guidance on parameterized queries HOT 4
- Response.profile is empty with a query with "PROFILE"
- (Bolt.Sips.Exception) unable to encode value: -128 HOT 1
- Outgoing SSL connection hangs, cannot be dropped and re-established HOT 2
- Feature request: auto reconnect HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bolt_sips.