I am running a process on RedHat 7 which uses intensively protobuf.
Application is multithreaded and usually runs wihout problems for days. It
processes billions of messages per day.
Once in a while the program gets aborted. My gdb on core tells that the
abort was initiated in protobuf generated file.
Here is bt output from gdb
#0 0x00007f4a72129377 in raise () from /lib64/libc.so.6
#1 0x00007f4a7212aa68 in abort () from /lib64/libc.so.6
#2 0x00007f4a7216bec7 in __libc_message () from /lib64/libc.so.6
#3 0x00007f4a721746b9 in _int_free () from /lib64/libc.so.6
#4 0x00007f4a72a96b63 in std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::~basic_string() () from /lib64/libstdc++.so.6
#5 0x00007f4a76eb4f72 in interfaces::MIObjectItemType::set_value
(this=0x7f4a10244ba0, value=0x7f4a31cf5af0 "922")
at
/home/boris_pitel-ciqdev.com/transformer/TransformerSupport/../IncludesProject/MIObjectSetTypeProtos.pb.h:794
#6 0x00007f4a76eb5b34 in PriceTicMIObject::set_KeyExchangeSource
(this=0x7f4a101d4bd0, v=0x7f4a31cf5af0 "922")
at
/home/boris_pitel-ciqdev.com/transformer/TransformerSupport/../IncludesProject/PriceTicObjectSet.h:300
#7 0x00007f4a76eb555d in PriceTicMIObject::set_KeyExchangeSource
(this=0x7f4a101d4bd0, v=922)
at
/home/boris_pitel-ciqdev.com/transformer/TransformerSupport/../IncludesProject/PriceTicObjectSet.h:128
#
On this stack the file /MIObjectSetTypeProtos.pb.h is generated by protobuf
line 794 points to value_.SetNoArena in function below.
inline void MIObjectItemType::set_value(const char* value) {
GOOGLE_DCHECK(value != NULL);
value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
::std::string(value));
//
@@protoc_insertion_point(field_set_char:interfaces.MIObjectItemType.value)
}
I realize that it can be some memory corruption on my side.
But I still hope that may be somebody from protobuf experts can have
enlightening ideas of how to solve this issue, or somebody remembers
similar situation.
Looking forward to any help.
-Boris
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/protobuf/9569d1e9-a5a7-4408-b65b-ff96a015b8d1%40googlegroups.com.