Open KarelCemus opened 8 years ago
@neilchaudhuri might confirm the issue rised since Brando 3.0.x. Based on play-redis#29 I guess it worked with Brando 2.x.x
OK, I confirm myself, with Brando 2.1.2 it works as expected.
is this is fixed ?? I'm still not able to connect
val redis = system.actorOf(Redis("localhost", 6379))
[INFO] [08/07/2016 10:32:28.971] [redis-test-akka.actor.default-dispatcher-3] [akka://redis-test/deadLetters] Message [akka.actor.PoisonPill$] from Actor[akka://redis-test/user/$c#-932188988] to Actor[akka://redis-test/deadLetters] was not delivered. [4] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
redis: ActorRef = Actor[akka://redis-test/user/$c#-932188988]
I think it's only on Damien's branch at the moment. You could use local publishes of the branch until it's published.
check it out
git clone https://github.com/damienlevin/brando
cd brando/
git checkout issue67
then publish it with sbt or activator
sbt +publish-local
activator +publish-local
Then you'll have v 3.0.4 available in your local sbt repository which you can use from your project for now. I'll have a look at the pull request later to see if I can help out.
thanks for info.. I'm done it already for my project. in plan to switch to another library for play-redis because of repo is inactive
I traced issues reported as Brando #64 and play-redis #44 and #29
Backstory
We noticed the first occurrence of the issue on Heroku because it secures its redis instance. It caused excessive logging without any reasonable error message.
However, I successfully reproduced in on localhost when I secured my redis instance.
How to reproduce
Enable redis authentication in redis.conf, e.g., uncomment
Code reproducing the issue
Example of Play framework controller:
Observation
When used
Redis
actor the response is the redis is disconnected. When theStashingRedis
is used, requests timeout. Both no further reason provided.Tracing the issue
To trace the issue, I inserted several logging statements into Brando. I figured out two things:
auth
is provided. The reason is it stucks inConnecting
state but the authentication is executed onConnected
.Subsequent issues
When max number of clients is reached, it crashes at this line.
Finally, it goes out of memory after while. However, I am not sure what exactly causes the memory leaking, just guessing.