Comments (5)
Hmm that is really weird. The only thing I can think is that one of the pool connections is hanging on being closed? If you were able to get the trace that'd be amazingly helpful in figuring this out, otherwise I don't really know where to go. The next time if happens you can send the process a SIGABRT to have it dump the stack of every go-routine.
from radix.
I'm going to go ahead and close this issue. The Pool code has been significantly rewritten since it was opened, and apparently no one else has encountered this since. If something comes up we can absolutely reopen it.
from radix.
Hey @tonyghita, thanks for trying out v3 and submitting this. I also don't immediately see where this could be occurring, but if you could give a bit more detail about what the deadlock looks like (Close just hangs? go actually does the deadlock trace dump?) and how you're using Pool (by itself? in a cluster?) I could try and track this down further. Thanks!
from radix.
Hey, sorry for the vague issue description.
The last thing I do on my application's shutdown is to call Close()
on the Pool
, which is connected to a single remote Redis instance.
The behavior I'm seeing is that the application does not exit, but waits indefinitely. Unfortunately we don't get the deadlock trace dump.
For added difficulty, this doesn't happen deterministically in regular usage (maybe 10% of the time).
I should also add that this is happening on Go 1.8.3.
from radix.
The only thing I can think is that one of the pool connections is hanging on being closed
This seems like it may be the case. I don't see any connection leaking so it feels like maybe just one or a handful of connection is hanging on close.
In the meantime, to workaround the issue, I've wrapped the pool's close method with a timeout.
from radix.
Related Issues (20)
- MEMORY USAGE keys handling doesn't appear to be correct HOT 1
- Radix aware of commands with BLOCK parameter? HOT 4
- An Lua timeout error during concurrent usage can deadlock a pool (v4) HOT 8
- Race condition when refreshing pubSubConn
- Flatten with empty slice in struct yields wrong number of arguments
- PSubscribe is not working in v4 HOT 1
- Preventing unnecessary connections open and close when initializing a cluster HOT 3
- sentinel master connection get's closed state HOT 8
- Umarshal failures after Clustered Redis Master failover HOT 4
- pubsub is not thread safe HOT 4
- newCluster returns "connection refused" for no reason HOT 4
- if sentinel redis master node is killed but not removed from sentinels list then redis connections will be broken HOT 1
- Canceling a blocking operation with no timeout leaves the connection hanging HOT 4
- SCAN command is failing on a cluster without replicas HOT 2
- v4: Try to select a replica with available connections when calling DoSecondary HOT 4
- v4: Break out of waiting for a connection when a pool is closed HOT 2
- V3: Can the Pool have a maximum connection limit setting? HOT 2
- Make use of the address info in MOVED error HOT 2
- v4: is there any way to run `--cluster check/fix` commands HOT 2
- v3: 2 separate connections for issuing regular commands and persistentpubsub ? 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 radix.