Yes, very early on during initialization of the library. My only concern 
with upgrading to a new version of protobuf is backward compatibility. 
Should I stick with 2.6 or go with 3.x? I know I can't use any of the new 
features but will all my current messages be recognizable across the 
different versions?

Thanks

On Thursday, October 26, 2017 at 3:28:05 PM UTC-4, Adam Cozzette wrote:
>
> When you say early on in application initialization, do you mean before 
> main() begins? Because if so then that might make things a little more 
> complicated. Using the non-lite version would probably not help very much 
> with debugging, since actually it adds more complexity by including 
> descriptors.
>
> It sounds like you may be stuck using an old version now, but if it's all 
> possible then you might want to consider upgrading, because it could well 
> be that this is a bug we've already fixed some time in the past few years.
>
> On Wed, Oct 25, 2017 at 11:46 AM, Chris Vavruska <[email protected] 
> <javascript:>> wrote:
>
>> Hey all,
>>
>> I am using 2.4.1-lite in an embedded project. I know it is a bit old but 
>> it is what I have to live with for now. We send a message simple 
>> synchronous request from one application to another to get a list of files. 
>> It returns the following message.
>>
>> message return_m {
>>     optional    string      data                        = 1;
>>     repeated    info_m      file_info                   = 3;
>>     optional    uint32      error                       = 4;
>>     optional    volsize_m   size                        = 5;
>> }
>> When we parse the response occasionally, I see the following crash which 
>> occurs early on in application initialization.
>>
>> [bt] linux-vdso32.so.1(__kernel_sigtramp_rt32+0x0)[0x100370] [bt] [0x9] 
>> [bt] 
>> /usr/lib/libprotobuflite.so.7(_ZN6google8protobuf8internal14WireFormatLite10ReadStringEPNS0_2io16CodedInputStreamEPSs+0x8c)[0xa46f8dc]
>>  
>>
>> [bt] 
>> /opt/appfs/lib/cp/libpbcpp.so.1(_ZN5filer6info_m27MergePartialFromCodedStreamEPN6google8protobuf2io16CodedInputStreamE+0x244)[0xa755450]
>>  
>>
>> [bt] 
>> /opt/appfs/lib/cp/libpbcpp.so.1(_ZN6google8protobuf8internal14WireFormatLite20ReadMessageNoVirtualIN5filer6info_mEEEbPNS0_2io16CodedInputStreamEPT_+0xa4)[0xa75bdb8]
>>  
>>
>> [bt] 
>> /opt/appfs/lib/cp/libpbcpp.so.1(_ZN5filer8return_m27MergePartialFromCodedStreamEPN6google8protobuf2io16CodedInputStreamE+0x25c)[0xa75754c]
>> [bt] 
>> /usr/lib/libprotobuf-lite.so.7(_ZN6google8protobuf11MessageLite14ParseFromArrayEPKvi+0xb8)[0xa46d428]
>>
>> Looking at the core file it appear to have some sort of corruption. Would 
>> using the non-lite version give some additional information/protection?  If 
>> so, then I am getting the following during init.
>>
>> #0  0x00000000 in ?? ()
>> #1  0x0f124a74 in __cxxabiv1::__dynamic_cast (src_ptr=0xf1ec340 
>> <(anonymous namespace)::num_put_c>, 
>>     src_type=0xf1e5f94 <typeinfo for std::locale::facet>, 
>>     dst_type=0xf1e24ac <typeinfo for 
>> std::__gnu_cxx_ldbl128::num_put<char, std::ostreambuf_iterator<char, 
>> std::char_traits<char> > >>, src2dst=0)
>>     at 
>> /opt/codesourcery/powerpc-linux-gnu/src/gcc/libstdc++-v3/libsupc++/dyncast.cc:60
>> #2  0x0f157e30 in std::has_facet<std::__gnu_cxx_ldbl128::num_put<char, 
>> std::ostreambuf_iterator<char, std::char_traits<char> > > > (__loc=...)
>>     at 
>> /opt/codesourcery/powerpc-linux-gnu/src/generated/gcc/powerpc-linux-gnu/libstdc++-v3/include/bits/locale_classes.tcc:110
>> #3  0x0f149320 in std::basic_ios<char, std::char_traits<char> 
>> >::_M_cache_locale (
>>     this=this@entry=0xf1eb990 <std::cout+4>, __loc=...)
>>     at 
>> /opt/codesourcery/powerpc-linux-gnu/src/generated/gcc/powerpc-linux-gnu/libstdc++-v3/include/bits/basic_ios.tcc:164
>> #4  0x0f1494cc in std::basic_ios<char, std::char_traits<char> >::init 
>> (this=this@entry=0xf1eb990 <std::cout+4>, 
>>     __sb=__sb@entry=0xf1ebbec <__gnu_internal::buf_cout_sync>)
>>     at 
>> /opt/codesourcery/powerpc-linux-gnu/src/generated/gcc/powerpc-linux-gnu/libstdc++-v3/include/bits/basic_ios.tcc:132
>> #5  0x0f1384f0 in basic_ostream (__sb=<optimized out>, this=<optimized 
>> out>, __in_chrg=<optimized out>, 
>>     __vtt_parm=<optimized out>)
>>     at 
>> /opt/codesourcery/powerpc-linux-gnu/src/generated/gcc/powerpc-linux-gnu/libstdc++-v3/include/ostream:85
>> #6  std::ios_base::Init::Init (this=<optimized out>)
>>     at 
>> /opt/codesourcery/powerpc-linux-gnu/src/gcc/libstdc++-v3/src/c++98/ios_init.cc:91
>> ---Type <return> to continue, or q <return> to quit---
>> #7  0x0f288970 in __static_initialization_and_destruction_0 
>> (__initialize_p=1, __priority=65535)
>>     at 
>> /opt/corp/projects/cdntools/embedtools/codebench-2014.05-53-powerpc-linux-gnu/powerpc-linux-gnu/include/c++/4.8.3/iostream:74
>> #8  _GLOBAL__sub_I_zero_copy_stream_impl.cc(void) ()
>>     at 
>> /usr/src/debug/protobuf/2.4.1-r0/protobuf-2.4.1/src/google/protobuf/io/zero_copy_stream_impl.cc:470
>> #9  0x0f326cac in __do_global_ctors_aux () from 
>> /vob/cb_releases/ppc-cetus-stable/usr/lib/libprotobuf.so.7
>> #10 0x0f28869c in _init () from 
>> /vob/cb_releases/ppc-cetus-stable/usr/lib/libprotobuf.so.7
>> #11 0xb7b2d5c8 in call_init (l=0xb7b0f020, argc=argc@entry=3, 
>> argv=argv@entry=0xbfdee474, 
>>     env=env@entry=0xbfdee484) at dl-init.c:69
>> #12 0xb7b2d778 in call_init (env=<optimized out>, argv=<optimized out>, 
>> argc=<optimized out>, l=<optimized out>)
>>     at dl-init.c:36
>> #13 _dl_init (main_map=0xb7b3f908, argc=3, argv=0xbfdee474, 
>> env=0xbfdee484) at dl-init.c:132
>> #14 0xb7b35fb8 in got_label () at 
>> ../sysdeps/powerpc/powerpc32/dl-start.S:66
>> Backtrace stopped: frame did not save the PC
>>
>> -- 
>> 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] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/protobuf.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to