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 !=
terminate called after throwing an instance of
  what():  CHECK failed: file != NULL:

and the relevant part of the source file is:

void protobuf_AssignDesc_user_2eproto() {
  const ::google::protobuf::FileDescriptor* file =

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



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 
For more options, visit this group at 

Reply via email to