-
Notifications
You must be signed in to change notification settings - Fork 390
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
upgrade protobuf compiler and library to 2.5.0 #358
Comments
Is there a work around for you? If you build EB with 2.5.0, would it work? are 2.5.0 generated java files backward compatible? |
Thanks. That's what we did by re-building EB with 2.5.0 protobuf compiler to fix the backward compatibility issue with 2.4.1. We have to set up an internal maven repository to host the binary. |
How about excluding 2.4.1 maven dependency in your pom and replacing it by 2.5.0 ? It might work without recompiling EB. |
without 2.5 support it is impossible to use it with spark :( |
I see. We need a fix for this. Only dependency on pre-generated protobufs is for com.twitter.data.proto.BlockStorage (used for BlockStorage). One option is to replace BlockStorage with a DynamicMessage so that we don't have any dependency on such pre-generated files. |
can you check if pull #373 would fix this issue? It replaces generated SerializedBlock protobuf with a DynamicMessage built at runtime. |
fixed in #373. Let us know if it does not fix the problem. |
@rangadi , can the the default protoc version be upgraded to 2.5.0? |
I think we can. Right now only reason we use protoc is for tests. What is the issue this is causing in your case? EB should work fine with protobuf 2.5.0 at runtime. |
We get the following exception with EB4.5: Is it fixed in trunk? Does any of the releases have this fix? |
I see, thank for reporting it. We need to handle 'ColumnarMetadata' used in RCFileThriftOutputFormat with a DynamicProto. I will have a patch soon. Are you able to build EB with 2.5.0 to unblock? |
Yes, we were able to build EB with proto 2.5.0 and works fine. Thanks |
Swetha, please see #418. It removes remaining two protobufs EB build. This should make EB RCFile work with either version of protobufs. Now protoc is used only for protobufs used in tests. |
Great, thank you. Is there a release planned soon with this fix? |
I have this problem too,As my project already running so long time,but recently, I need to add new fuction,when I ready to running this project in my cluster hadoop envroment,this problem is comming~ |
My code counts on this problem recently,how could I fix it,pls? |
It makes me mad |
It seems current elephand-bird still uses 2.4.1 protobuf compiler and library, which was 2.5 years old. We are currently using 2.5.0 protobuf library in our project. Unfortunately, library of 2.5.0 does not fully support auto-generated protobuf java codes using 2.4.1 compiler.
This caused an issue when we tried to use SerializedBlock class in block_storage.proto. Error messages look like:
java.lang.UnsupportedOperationException: This is supposed to be overridden by subclasses at com.google.protobuf.GeneratedMessage.getUnknownFields(GeneratedMessage.java:180) at com.twitter.data.proto.BlockStorage$SerializedBlock.getSerializedSize(BlockStorage.java:164) at com.google.protobuf.AbstractMessageLite.toByteArray(AbstractMessageLite.java:62)
Will you consider to upgrade protobuf compiler and library in elephandbird?
The text was updated successfully, but these errors were encountered: