Erik
I am pretty sure that protobuf 2.5 itself is binary compatible with 2.4, so
what if you simply update CDH dependency to use protobuff 2.5. Based on the
changes I read here
https://code.google.com/p/protobuf/source/browse/trunk/CHANGES.txt I'd
seriously doubt that it would cause any issues with CDH.

Cheers
Oleg


On Tue, Feb 4, 2014 at 4:32 PM, Erik Nelson <e...@gravity.com> wrote:

> Akka 2.3 remoting updates its com.google.protobuf protpbuf-java dependency
> to version 2.5, which is binary incompatible with at least some versions of
> hadoop, including 2.0.0-cdh4.3.2, which depend on protbuf 2.4.
>
> Excluding the dependency breaks akka remoting, which means I am currently
> unable to update to akka 2.3. I thought I might not be the only one, and
> that other people here might appreciate a heads up on the issue!
>
> I'm still investigating what it will take to move forward in our project,
> since I don't want to be stuck on 2.2, but a hadoop update is a serious
> production task, so it's not something I can do quickly.
>
> This is where akka breaks without protobuf 2.5:
>
> java.lang.VerifyError: class akka.remote.WireFormats$AkkaControlMessage
> overrides final method
> getUnknownFields.()Lcom/google/protobuf/UnknownFieldSet;
>         at java.lang.ClassLoader.defineClass1(Native Method)
>         at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
>         at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
>         at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
>         at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>         at
> akka.remote.transport.AkkaPduProtobufCodec$.constructControlMessagePdu(AkkaPduCodec.scala:231)
>
> (I don't have the exception from hadoop handy and changing the dependency
> again to get it working would take 20 minutes of rebuilds so I'm not going
> to do so right this second)
>
> Relatedly, I do hope that akka, as it matures, can give some attention to
> the difficulty of its version update path within a large code ecosystem. I
> know that that is ENTIRELY non-trivial, and too much attention on that can
> stagnate development, but the amount of time I spend keeping up with new
> releases (because of the wonderful new functionality that is always coming
> out due to the hard work of the akka team!) is somewhat staggering. The
> wire format incompatibility between each version is particularly difficult
> - it's not that I want to keep a heterogenous set of server versions
> running for long, but the reality of a large server base is that it's
> impossible to update every server at once without significant downtime, and
> at a certain size of providing service to The Internet, you just need to be
> able to change the engines on your plane while it's in the air.
>
>  erik
>
> --
> >>>>>>>>>>      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 unsubscribe from this group and stop receiving emails from it, send an
> email to akka-user+unsubscr...@googlegroups.com.
> To post to this group, send email to akka-user@googlegroups.com.
> Visit this group at http://groups.google.com/group/akka-user.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
>>>>>>>>>>      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 unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to