Skip to content
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

key in command for ExecutionFailedException #102

Closed
Enalmada opened this issue Jul 9, 2017 · 4 comments
Closed

key in command for ExecutionFailedException #102

Enalmada opened this issue Jul 9, 2017 · 4 comments
Labels
Milestone

Comments

@Enalmada
Copy link

Enalmada commented Jul 9, 2017

I am using Kyro and trying to extend a the log and default recovery policy to delete the key that has a serialization issue.

When looking at the Reports trait, the message function says I get a ExecutionFailedException instead of the expected SerializationException i see later in the report stack trace.

Also, the key value seems to be the command and the command has " "seems to be appearing as part of the command and the command :
Command $command for key '$key' failed -> Command GET for key 'GET' failed.

17:52:29 ERROR play.api.cache.redis - Command GET hasFlags.17592186045482 for key 'GET' failed.
play.api.cache.redis.exception.SerializationException: Deserialization failed for hasFlags.17592186045482
        at play.api.cache.redis.exception.package$.serializationFailed(package.scala:18)
        at play.api.cache.redis.connector.RedisConnectorImpl$$anonfun$play$api$cache$redis$connector$RedisConnectorImpl$$decode$1.applyOrElse(RedisConnectorImpl.scala:73)
        at play.api.cache.redis.connector.RedisConnectorImpl$$anonfun$play$api$cache$redis$connector$RedisConnectorImpl$$decode$1.applyOrElse(RedisConnectorImpl.scala:72)
        at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:34)
        at scala.util.Failure.recover(Try.scala:230)
        at play.api.cache.redis.connector.RedisConnectorImpl.play$api$cache$redis$connector$RedisConnectorImpl$$decode(RedisConnectorImpl.scala:72)
        at play.api.cache.redis.connector.RedisConnectorImpl$$anonfun$get$1.applyOrElse(RedisConnectorImpl.scala:51)
        at play.api.cache.redis.connector.RedisConnectorImpl$$anonfun$get$1.applyOrElse(RedisConnectorImpl.scala:48)
        at scala.PartialFunction$OrElse.apply(PartialFunction.scala:168)
        at scala.util.Success.$anonfun$map$1(Try.scala:251)
        at scala.util.Success.map(Try.scala:209)
        at scala.concurrent.Future.$anonfun$map$1(Future.scala:287)
        at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:29)
        at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:29)
        at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
        at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)
        at akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:91)
        at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
        at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:81)
        at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:91)
        at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:38)
        at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:43)
        at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 2013895718
        at com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(DefaultClassResolver.java:137)
        at com.esotericsoftware.kryo.Kryo.readClass(Kryo.java:693)
        at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:804)
        at com.romix.akka.serialization.kryo.KryoBasedSerializer.fromBinary(KryoSerializer.scala:504)
        at com.romix.akka.serialization.kryo.KryoSerializer.fromBinary(KryoSerializer.scala:351)
        at akka.serialization.Serialization.$anonfun$deserialize$3(Serialization.scala:203)
        at scala.util.Try$.apply(Try.scala:209)
        at akka.serialization.Serialization.deserialize(Serialization.scala:203)
        at play.api.cache.redis.connector.AkkaDecoder.binaryToAnyRef(AkkaSerializer.scala:121)
        at play.api.cache.redis.connector.AkkaDecoder.$anonfun$stringToAnyRef$2(AkkaSerializer.scala:125)
        at scala.Function1.$anonfun$andThen$1(Function1.scala:52)
        at play.api.cache.redis.connector.AkkaDecoder.stringToAnyRef(AkkaSerializer.scala:125)
        at play.api.cache.redis.connector.AkkaDecoder.untypedDecode(AkkaSerializer.scala:112)
        at play.api.cache.redis.connector.AkkaDecoder.decode(AkkaSerializer.scala:96)
        at play.api.cache.redis.connector.AkkaSerializerImpl.$anonfun$decode$1(AkkaSerializer.scala:162)
        at scala.util.Try$.apply(Try.scala:209)
        at play.api.cache.redis.connector.AkkaSerializerImpl.decode(AkkaSerializer.scala:162)
        ... 21 common frames omitted
@KarelCemus
Copy link
Owner

KarelCemus commented Jul 10, 2017

Hi @Enalmada,

it seems like you hit several rough spots at once.

  1. there are wrong parameters within the exception
  2. the serialization fails too early, i.e., before it gets into Try block.

The first one is already fixed and I'll push it soon, the other one I have to investigate more deeply because brief code examination didn't reveal the cause.

What version do you use? I need to know which version patch

@KarelCemus KarelCemus added the bug label Jul 10, 2017
@KarelCemus KarelCemus modified the milestones: 1.4.2, 1.5.1 Jul 10, 2017
@KarelCemus
Copy link
Owner

Oh, my bad. I misinterpreted this

When looking at the Reports trait, the message function says I get an ExecutionFailedException instead of the expected SerializationException I see later in the report stack trace.

Now I get it and look into it

@Enalmada
Copy link
Author

Hi,

I use 1.5.0. I just upgraded to playframework 2.6 and needed something I could use on AWS for multiple servers. I was going to use memcached (since I didn't know any better) but that module is not yet updated to 2.6. I am so grateful that play-redis is 2.6 ready, thank you very much for your community contributions. Play-redis looks pretty nice so far!

@KarelCemus
Copy link
Owner

Thanks for the appreciation, I published the patch as 1.5.1, should be in repos within a few hours.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants