I've wasted two days before I've found one mysterious problem.
Let we have two independent applications using akka-remote.
One on them has some private enum, containing private field (it's important!). And this application send instance of enum mentioned to another one.
Another application tries to unmarshal message and akka SILENTLY fails. So, programmer are in doubt: no log messages, no exceptions, not any visible problem, but target application doesn't receive anything.
This problem doesn't occure when type of passed instance is available in classpath of the second app, OR then it's enum which doesn't contain any fields.
Please find full demo attached (full sources, buildable by maven).
To reproduce the problem you should compile application, then run DummyServerBad, then run DummyClient. You will not see anything in stdout/stderr of DummyServerBad, and will see timeout exception in stdout of DummyClient.
Then try to do the same with DummyServerGood (same code, but located in classpath of DummyClient). In this case message will be received by server and client will receive answer.
I think that Akka MUST do some verbose logging on ANY unmarshalling fail, current behavior is the way to the hell of very-hard-to-debug errors.
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://akka.io/faq/
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka User List" group.
To post to this group, send email to akka...@googlegroups.com.
To unsubscribe from this group, send email to akka-user+...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user?hl=en.
Thank you very much for you help, this option made everything clear.
But I think that such option MUST be turned on by default or described in the first lines of the akka-remoting docs.
It's very easy to produce situation like this and it's very hard to debug such issues.
+1.I am just starting out with Akka and remoting and I think I was bitten by this. It seems that NotSerializableExceptions were not showing up until I turned on this flag, and as a result messages were silently dropped.
Actually, please disregard the comment I just posted, I was using M1, not M2. Thanks.
Johan
It seems so. I don't have these problems with M2. Sorry to raise a false alarm.