-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Driver fail to reconnect if cluster changes #150
Comments
Thanks for the very well written issue! |
The initial URI was only used when there were no routers from the previous table. This fix makes sure that initial URI is used to retrieve routers when previous set of routers fail. fix neo4j#150
The initial URI was only used when there were no routers from the previous table. This fix makes sure that initial URI is used to retrieve routers when previous set of routers fail. fix #150
Hi, I'm using the driver with this fix and I'm still connecting to Aura service and regularly see the EOF error messages. There is only few hundreds or less of request per hour and I see this same error message 1-3 times per hour. Compare to the number of call it's very often.
My application catch the io.EOF error message here and invokes the same operation again.
|
Time to time execute some QueryTransaction
Always returns a result and recovers from errors if possible.
The application was not used over night when I assume the routing table contained the server 4 and 5 and 6. When the first query hit the server the operation failed but the second query succeeded.
Running the
CALL dbms.cluster.routing.getRoutingTable({})
cypher showed the cluster is reconfigured to server 7 (WRITE) and 8,9 (READ). The operation was executed with session fromdriver.Session(neo4j.AccessModeRead)
so following the number logic the lowest number might be the write node so seems odd that the operation was trying to connect to server 4 and log shows it may checked 5 and 6 before. My application received the EOF error instead of driver recovering and returning with the result.router 1:Reading routing table for '' from any of [neo4j-core-xxxxx-6.production-orch-0001.neo4j.io:7687 neo4j-core-xxxxx-5.production-orch-0001.neo4j.io:7687 neo4j-core-xxxxxxxx-4.production-orch-0001.neo4j.io:7687]
pool 1:No server connection available to any of [neo4j-core-xxxxx-6.production-orch-0001.neo4j.io:7687]
pool 1:No server connection available to any of [neo4j-core-xxxxx-5.production-orch-0001.neo4j.io:7687]
bolt-209632@neo4j-core-xxxxxx-4.production-orch-0001.neo4j.io:7687/v4:write tcp 10.xxxxx:43874->xxx:7687: write: broken pipe
pool 1:No server connection available to any of [neo4j-core-xxxxxx-4.production-orch-0001.neo4j.io:7687]
router 1:Unable to retrieve routing table from neo4j-core-xxxxxx-4.production-orch-0001.neo4j.io:7687: EOF
bolt-209494@xxxxxx.databases.neo4j.io:7687/v4:write tcp 10.8.1.168:43868->35.187.125.190:7687: write: broken pipe
The text was updated successfully, but these errors were encountered: