Hi all, I have an application that was originally doing all of the Protocol Buffer access in Python but I'm in the process of moving a performance critical part to C++. Most of the Protocol Buffer access code remains in Python with just one part in C++ right now. Most of the time everything works fine but periodically the application terminates with this message:
libprotobuf FATAL src/proto/user.pb.cc:51] CHECK failed: file != NULL: terminate called after throwing an instance of 'google::protobuf::FatalException' what(): CHECK failed: file != NULL: and the relevant part of the source file is: void protobuf_AssignDesc_user_2eproto() { protobuf_AddDesc_user_2eproto(); const ::google::protobuf::FileDescriptor* file = ::google::protobuf::DescriptorPool::generated_pool()- >FindFileByName( "user.proto"); I'm a little confused about why the C++ code needs to access the original descriptor at runtime and why it seems to be intermittent as to when it needs to do so. The proto file in question does not import any other packages and of course the C++ source file already contains the file descriptor that describes the whole proto file anyway. Does this simple use case require me to delve into descriptor databases and pools? I'm using version 2.4.1 with the C++ backend for Python via the PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp environment variable. Thanks, Patrick -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to protobuf@googlegroups.com. To unsubscribe from this group, send email to protobuf+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.