Comments (12)
I pushed 37c9423 to branch issue-26-memory-leak-fix. Can you give it a try? Deallocation happens using netty the same way resources are allocated.
from lettuce.
You can set the log level to DEBUG
for the logger com.lambdaworks.redis.protocol
(or even com.lambdaworks
) to inspect the raw data. ASCII 111 is o
which looks like some data was either in the buffer or the reply was not expected from redis. Guess, this will need further investigation.
from lettuce.
I will give it a shot. Sadly I don't have a good way to reproduce yet.
The fix looks good and makes sense. The allocation/release is now symmetrical.
Other invalid bytes I had were 'l', 'o', 'u', 'C'.
This might be related to the way we wrap the connection in SSL.
from lettuce.
hm. Looks like a feature request :)
from lettuce.
SSL wrapping? That might have actually helped avoid all of these issues. Lettuce would have known the connection is not really up and it's only the SSL tunnel that's up.
from lettuce.
Yep. Created issue #28
from lettuce.
Another thing that could have helped avoid this is a more thorough handshake that verified Lettuce is talking to Redis on the other side before beginning to dispatch commands. Maybe a ping/pong sequence first.
from lettuce.
No luck reproducing yet.
from lettuce.
Still not able to reproduce the exact issue, but I was able to confirm this fix is good. Instead of bad bytes, I got plain old connection reset by peer. When Redis goes down and Lettuce reconnects close()
is never called. I've also added assert buffer == null
at the top of of channelRegistered()
and without this fix it fires multiple times on reconnection.
from lettuce.
Setting this one to resolved. The SSL issue is addressed with issue #28
from lettuce.
3.0.3.Final released
from lettuce.
Thanks! :)
from lettuce.
Related Issues (20)
- Support publishing of long-lived JFR events to the `EventBus`
- Redis health check failed ConcurrentModificationException: null HOT 1
- Make WithLatency visable for better custmization HOT 2
- Tracing is enabled even when using DefaultClientResources
- Add option to customize expected exceptions in `DefaultEndpoint` HOT 1
- nested exception is java.lang.UnsupportedOperationException: io.lettuce.core.output.ValueOutput does not support set(long) HOT 3
- georaduis command execute error when use ReadFrom.REPLICA_PREFERRED HOT 12
- Hash Field Expiration Support HOT 1
- SSL FULL verify seed connection, but only CA verify for cluster node connections
- Getting the keys from cache returns the wrong amount in cluster mode with replica enabled. HOT 1
- Is client side caching enabled by default in lettuce? If yes, Is there a way to not do client side caching in lettuce? HOT 1
- Seeing Warning Logs :: Cannot refresh Redis Cluster topology in 6.2.6.RELEASE HOT 4
- After turning on topology refresh, lettuce log is written inside rocketmq-client.log. HOT 4
- Lettuce client reconnecting frequently HOT 1
- Custom command with Lettuce occurs UnsupportedOperationException HOT 1
- Stateful redis cluster pubsub is not working HOT 4
- Why does lecttuce send lua script load command to all nodes (including replicas) in redis cluster? HOT 4
- `DefaultClientResources.dnsResolver(DnsResolver resolver)` should be marked as deprecated.
- ClusterTopologyChangedEvent Timing Issue
- Provide a convenience method to support reading of last message from stream
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 lettuce.