From 3f61dfdbacbb060017f14cea89a6ff5a0d2e6493 Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Mon, 13 Jun 2022 09:47:25 +0200 Subject: [PATCH] Log stacktrace on deserialization error (#31432) Deserialization errors are usually programming errors that are not really recoverable, so it seems to make sense to log at the ERROR level, plus this gives the operator access to the stacktrace which might be helpful in diagnosing the problem. --- .../src/main/scala/akka/remote/artery/Codecs.scala | 8 ++++---- .../scala/akka/remote/artery/SerializationErrorSpec.scala | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/akka-remote/src/main/scala/akka/remote/artery/Codecs.scala b/akka-remote/src/main/scala/akka/remote/artery/Codecs.scala index bfd32a6fa0..92889113b2 100644 --- a/akka-remote/src/main/scala/akka/remote/artery/Codecs.scala +++ b/akka-remote/src/main/scala/akka/remote/artery/Codecs.scala @@ -681,12 +681,12 @@ private[remote] class Deserializer( case OptionVal.Some(a) => a.remoteAddress case _ => "unknown" } - log.warning( - "Failed to deserialize message from [{}] with serializer id [{}] and manifest [{}]. {}", + log.error( + e, + "Failed to deserialize message from [{}] with serializer id [{}] and manifest [{}].", from, envelope.serializer, - envelope.classManifest, - e) + envelope.classManifest) pull(in) } finally { val buf = envelope.envelopeBuffer diff --git a/akka-remote/src/test/scala/akka/remote/artery/SerializationErrorSpec.scala b/akka-remote/src/test/scala/akka/remote/artery/SerializationErrorSpec.scala index 2722c3a782..a073058c43 100644 --- a/akka-remote/src/test/scala/akka/remote/artery/SerializationErrorSpec.scala +++ b/akka-remote/src/test/scala/akka/remote/artery/SerializationErrorSpec.scala @@ -59,7 +59,7 @@ class SerializationErrorSpec extends ArteryMultiNodeSpec(ArterySpecSupport.defau expectMsg("ping") EventFilter - .warning(pattern = """Failed to deserialize message from \[.*\] with serializer id \[4\]""", occurrences = 1) + .error(pattern = """Failed to deserialize message from \[.*\] with serializer id \[4\]""", occurrences = 1) .intercept { remoteRef ! "boom".getBytes("utf-8") }(systemB)