Any idea where i could look for some clues as what's causing this crash? 
The code is trying to insert a pair in to ::google::protobuf::Map< 
::std::string, ::std::string >

On Tuesday, August 13, 2024 at 12:57:41 PM UTC-7 Sundar Swamy wrote:

> Platform: Mac OS,. 10.15 & Mac OS 11.x ( arm64)
> Compiler: AppleClang 12.0.0.12000032
> Mac OSX SDK: 11
> I link libprotouf.a to my shared libary (dylib). The dylib is compiled 
> using -fsanitize=thread -O1 but protobuf is compiled as normal ( without 
> any sanitizer flags )
> When i run in thread sanitizer, i get SEGV and here is a sample callstack
>
> [2024-08-13T17:26:21.490Z] ThreadSanitizer:DEADLYSIGNAL 
> [2024-08-13T17:26:21.490Z] ==1855==ERROR: ThreadSanitizer: SEGV on unknown 
> address 0x000000000000 (pc 0x0001021e9840 bp 0x7e8000186920 sp 
> 0x7e8000186900 T2629743) [2024-08-13T17:26:21.490Z] ==1855==The signal is 
> caused by a READ memory access. [2024-08-13T17:26:21.490Z] ==1855==Hint: 
> address points to the zero page.
> ...
> ...
>
>  #0 
> google::protobuf::internal::UntypedMapBase::TableEntryIsNonEmptyList(unsigned 
> int) const map.h:630 (mySample.9.1.2.17.dylib:x86_64+0xe7840)
>
> [2024-08-13T17:26:23.250Z]     #1 
> google::protobuf::internal::KeyMapBase<std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> > 
> >::FindHelper(absl::lts_20240116::string_view, 
> absl::lts_20240116::container_internal::btree_iterator<absl::lts_20240116::container_internal::btree_node<absl::lts_20240116::container_internal::map_params<google::protobuf::internal::VariantKey,
>  
> google::protobuf::internal::NodeBase*, 
> std::__1::less<google::protobuf::internal::VariantKey>, 
> google::protobuf::internal::MapAllocator<std::__1::pair<google::protobuf::internal::VariantKey
>  
> const, google::protobuf::internal::NodeBase*> >, 256, false> >, 
> std::__1::pair<google::protobuf::internal::VariantKey const, 
> google::protobuf::internal::NodeBase*>&, 
> std::__1::pair<google::protobuf::internal::VariantKey const, 
> google::protobuf::internal::NodeBase*>*>*) const map.h:953 
> (mySample.9.1.2.17.dylib:x86_64+0xe7594)
>
> [2024-08-13T17:26:23.251Z]     #2 
> std::__1::pair<google::protobuf::Map<std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > >::iterator, bool> 
> google::protobuf::Map<std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > 
> >::TryEmplaceInternal<std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> > const, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > >(std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> > const&&, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> >&&) map.h:1619 
> (mySample.9.1.2.17.dylib:x86_64+0xea059)
>
> [2024-08-13T17:26:23.251Z]     #3 
> std::__1::pair<google::protobuf::Map<std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > >::iterator, bool> 
> google::protobuf::Map<std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > 
> >::ArenaAwareTryEmplace<std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> > const, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > >(std::__1::integral_constant<bool, false>, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > const&&, std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> >&&) map.h:1692 
> (mySample.9.1.2.17.dylib:x86_64+0xe9f25)
>
> [2024-08-13T17:26:23.251Z]     #4 
> std::__1::pair<google::protobuf::Map<std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > >::iterator, bool> 
> google::protobuf::Map<std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > >::try_emplace<std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> > const, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > >(std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> > const&&, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> >&&) map.h:1466 
> (mySample.9.1.2.17.dylib:x86_64+0xe9e35)
>
> [2024-08-13T17:26:23.252Z]     #5 
> std::__1::pair<google::protobuf::Map<std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > >::iterator, bool> 
> google::protobuf::Map<std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > 
> >::insert<std::__1::pair<std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> > const, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > >, 
> 0>(std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > const, std::__1::basic_string<char, 
> std::__1::char_traits<char>, std::__1::allocator<char> > >&&) map.h:1476 
> (mySample.9.1.2.17.dylib:x86_64+0xb5643)
>
> ….
>
> ….
>
> …
>
> …
>
>
> 2024-08-13T17:26:23.253Z]     #18 MySDK::CMySDKSocket::TestMonitorThread() 
> MySDKSocket.cpp:191 (mySample.9.1.2.17.dylib:x86_64+0x1a0b5f)
>
> [2024-08-13T17:26:23.253Z]     #19 
> decltype(*(std::__1::forward<MySDK::CMySDKSocket*>(fp0)).*fp()) 
> std::__1::__invoke<void (MySDK::CMySDKSocket::*)(), MySDK::CMySDKSocket*, 
> void>(void (MySDK::CMySDKSocket::*&&)(), MySDK::CMySDKSocket*&&) 
> type_traits:3486 (mySample.9.1.2.17.dylib:x86_64+0x1ac338)
>
> [2024-08-13T17:26:23.253Z]     #20 void 
> std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, 
> std::__1::default_delete<std::__1::__thread_struct> >, void 
> (MySDK::CMySDKSocket::*)(), MySDK::CMySDKSocket*, 
> 2ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, 
> std::__1::default_delete<std::__1::__thread_struct> >, void 
> (MySDK::CMySDKSocket::*)(), MySDK::CMySDKSocket*>&, 
> std::__1::__tuple_indices<2ul>) thread:273 
> (mySample.9.1.2.17.dylib:x86_64+0x1ac122)
>
> [2024-08-13T17:26:23.254Z]     #21 void* 
> std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct,
>  
> std::__1::default_delete<std::__1::__thread_struct> >, void 
> (MySDK::CMySDKSocket::*)(), MySDK::CMySDKSocket*> >(void*) thread:284 
> (mySample.9.1.2.17.dylib:x86_64+0x1ab37b)
>
> [2024-08-13T17:26:23.254Z]     #22 __tsan_thread_start_func <null>:3 
> (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2d89b)
>
> [2024-08-13T17:26:23.254Z] waitForEchoResponse: 19
>
>     #23 _pthread_start <null>:2 (libsystem_pthread.dylib:x86_64+0x6108)
>
> [2024-08-13T17:26:23.254Z]     #24 thread_start <null>:2 
> (libsystem_pthread.dylib:x86_64+0x1b8a)
>
> [2024-08-13T17:26:23.254Z] 
>
> [2024-08-13T17:26:23.254Z] ==1855==Register values:
>
> [2024-08-13T17:26:23.254Z] rax = 0x000003ffffffffff  rbx = 
> 0x0000000000000000  rcx = 0x0000000003390000  rdx = 0x0000600003390000  
>
> [2024-08-13T17:26:23.254Z] rdi = 0x0000000105730000  rsi = 
> 0x00000001021e9840  rbp = 0x00007e8000186920  rsp = 0x00007e8000186900  
>
> [2024-08-13T17:26:23.254Z]  r8 = 0x0000000000000000   r9 = 
> 0x0000000000000000  r10 = 0x0000000000000000  r11 = 0x0000000000000000  
>
> [2024-08-13T17:26:23.254Z] r12 = 0x00007b3400006830  r13 = 
> 0x00007e8000186ab8  r14 = 0x0000000000000000  r15 = 0x0000000000000000  
>
> [2024-08-13T17:26:23.254Z] ThreadSanitizer can not provide additional info.
>
> [2024-08-13T17:26:23.254Z] SUMMARY: ThreadSanitizer: SEGV map.h:630 in 
> google::protobuf::internal::UntypedMapBase::TableEntryIsNonEmptyList(unsigned 
> int) const
>
> [2024-08-13T17:26:23.254Z] ==1855==ABORTING
> What could be causing this issue? we never had this issue with our 
> previous protobuf version compiled the same way 3.21.12 using the same 
> clang compiler version as universal binary. Any advise? 
>
>

-- 
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/22048313-167e-445d-9e91-231b8a725746n%40googlegroups.com.

Reply via email to