scredis / scredis

Non-blocking, ultra-fast Scala Redis client built on top of Akka IO.

Home Page:https://scredis.github.io/scredis/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Missing release tag 2.1.5

garvinguan opened this issue · comments

Looking at what's available https://repo1.maven.org/maven2/com/github/scredis/scredis_2.12/ I see there's a version 2.1.5+19-a5ac3984. Is this usable? I need this version for the akka version 2.5.16 to not conflict with my current project

go with 2.1.9 https://repo1.maven.org/maven2/com/github/scredis/scredis_2.12/2.1.9/

2.1.5+19-a5ac3984 and similar are created after merging anything to master but necessarily associated to any particular release.

@kpbochenek The akka version is too high in that version though, when I start up I get

2018-10-15 20:31:12 - [warn] - akka.util.ManifestInfo - Detected possible incompatible versions on the classpath. Please note that a given Akka version MUST be the same across all modules of Akka that you are using, e.g. if you use [2.5.17] all other modules that are released together MUST be of the same version. Make sure you're using a compatible set of libraries.Possibly conflicting versions [2.5.16, 2.5.17] in libraries [akka-persistence:2.5.16, akka-cluster-sharding:2.5.16, akka-protobuf:2.5.16, akka-persistence-query:2.5.16, akka-actor:2.5.17, akka-slf4j:2.5.16, akka-remote:2.5.16, akka-cluster:2.5.16, akka-distributed-data:2.5.16, akka-stream:2.5.16, akka-cluster-tools:2.5.16]

and then later on is issues binding to port

[ERROR] [10/15/2018 20:31:30.281] [scredis-akka.remote.default-remote-dispatcher-6] [NettyTransport(akka://scredis)] failed to bind to /10.52.1.238:10001, shutting down Netty transport
[ERROR] [10/15/2018 20:31:30.476] [main] [akka.remote.Remoting] Remoting error: [Startup failed] [
akka.remote.RemoteTransportException: Startup failed
at akka.remote.Remoting.akka$remote$Remoting$$notifyError(Remoting.scala:148)
at akka.remote.Remoting.start(Remoting.scala:214)
at akka.remote.RemoteActorRefProvider.init(RemoteActorRefProvider.scala:222)
at akka.cluster.ClusterActorRefProvider.init(ClusterActorRefProvider.scala:32)
at akka.actor.ActorSystemImpl.liftedTree2$1(ActorSystem.scala:868)
at akka.actor.ActorSystemImpl._start$lzycompute(ActorSystem.scala:864)
at akka.actor.ActorSystemImpl._start(ActorSystem.scala:864)
at akka.actor.ActorSystemImpl.start(ActorSystem.scala:885)
at akka.actor.ActorSystem$.apply(ActorSystem.scala:246)
at akka.actor.ActorSystem$.apply(ActorSystem.scala:289)
at akka.actor.ActorSystem$.apply(ActorSystem.scala:234)
at scredis.Redis.(Redis.scala:39)
at scredis.Redis.(Redis.scala:167)
at scredis.Redis.(Redis.scala:190)
at scredis.Redis$.apply(Redis.scala:415)

Ok 2.1.5+19-a5ac3984 should be ok to use, previous releases were not not done by me and were not pushed to maven central that's why you don't see 2.1.5.

Other question, what other library do you use that requires akka 2.5.16 ?

Very weird that difference in minor akka version cause you problems, but try 2.1.5+19-a5ac3984 and let me know if it works for you.

We're using Lagom 1.4.8 with SbtReactiveApp which requires akka version 2.5.16. We actually tried that minor version but still ran into the same issue so it's possible it could be a different issue, I'm looking into it further atm

Redis - if you don't provide ActorSystem will try to create one. Because you have in your dependencies AkkaCluster/Remoting Akka by default creates clustered ActorSystem which requires binding to external port. It fails for some reason. You should probably try investigate

In 2.1.9 version you can provide ActorSystem so Redis will not try to create one.

Version 2.1.5+19-a5ac3984 does not work unfortunately. Using this sbt dependencyTree plugin https://github.com/jrudolph/sbt-dependency-graph I see that that still uses akka-actor 2.5.17.

 +-com.github.scredis:scredis_2.12:2.1.5+19-a5ac3984 [S]^[[0m 
 | +-com.typesafe.akka:akka-actor_2.12:2.5.17 [S]^[[0m 
 | | +-com.typesafe:config:1.3.3^[[0m
 | | +-org.scala-lang.modules:scala-java8-compat_2.12:0.8.0 [S]^[[0m
 | | ^[[0m
 | +-com.typesafe.scala-logging:scala-logging_2.12:3.9.0 [S]^[[0m
 | | +-org.scala-lang:scala-reflect:2.12.6 [S]^[[0m
 | | +-org.slf4j:slf4j-api:1.7.25^[[0m
 | | ^[[0m
 | +-com.typesafe:config:1.3.3^[[0m

Could you provide an example how to pass the ActorSystem into Redis? I'm curious if that will work because the library is still a conflicting version

Would we be able to publish the actual 2.1.5 version for use?

Redis.withActorSystem() and implicit ActorSystem will be picked up.
OR
Redis.withActorSystem()(yourActorSystem)
again I don't think this is a problem of akka version mismatch as it is only one minor version difference.

Oops, I accidentally closed it. I've tried that as well as using dependencyOverriding to up the akka versions in lagom to 2.5.17 but there's another issue

akka.cluster.sharding.ShardRegion - No coordinator found to register. Probably, no seed-nodes configured and manual cluster join not performed? Total [1] buffered messages.

which I'm looking into for now which is probably a different issue.

Thank you for the help so far @kpbochenek ! I'll be sure to report back if the issue was somehow related to this