Hey team,
I'm Sacheta, one of the maintainers of the labview-grpc (https://github.com/ni/grpc-labview) repository.
We're attempting to upgrade gRPC from v1.62.0 to v1.70.0 and are encountering a blocking crash due to changes in protobuf's code. We’d really appreciate any guidance or workaround — otherwise, we may be forced to re-architect major parts of our integration to support this upgrade.
During a unary gRPC call, we hit a read access violation in MessageLite::AccessCachedSize(). The crash occurs because our override of GetClassData() returns nullptr, and the protobuf runtime does not check for null before dereferencing.
--
You received this message because you are subscribed to the Google Groups "Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to protobuf+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/protobuf/a3b5842a-a448-473e-9382-f12a57799e46n%40googlegroups.com.
Hi EM,
Thanks for the clarification — that helps.
Just to explain our current setup more clearly:
Why we're not using protoc:
We avoided using the protoc compiler because it generates C++ code that must be compiled separately for each platform. Since LabVIEW is platform-independent, we wanted to maintain that property and avoid introducing platform-specific native binaries.
About the LVMessage class:
The purpose of the LVMessage class in the grpc-labview project is to allow LabVIEW—an environment that cannot use the standard protoc code generation workflow—to dynamically construct, serialize, and deserialize Protocol Buffers messages at runtime. We are doing this to provide the marshalling code between LabVIEW Data types and protobuf data types. To support this, we manually inherit from google::protobuf::Message and use select methods from the base class to assist with parsing and serialization.
To view this discussion visit https://groups.google.com/d/msgid/protobuf/5632fbff-e879-461c-8656-57701db83b2fn%40googlegroups.com.