[ 
https://issues.apache.org/jira/browse/PROTON-2371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17318330#comment-17318330
 ] 

Andrew Stitcher commented on PROTON-2371:
-----------------------------------------

This would doubtless also be an issue with FreeBSD except that the ASAN build 
there doesn't work.

> C++ test failures on MacOS with ASAN due to unexported symbols being  hidden
> ----------------------------------------------------------------------------
>
>                 Key: PROTON-2371
>                 URL: https://issues.apache.org/jira/browse/PROTON-2371
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: proton-c-0.34.0
>         Environment: macOSX 10.15, AppleClang 12
>            Reporter: Andrew Stitcher
>            Priority: Major
>
> For example:
> {noformat}
> 13: ../cpp/src/session.cpp:71:21: runtime error: member call on address 
> 0x7ffee55639e0 which does not point to an object of type 
> 'proton::io::link_namer'
> 13: 0x7ffee55639e0: note: object is of type '(anonymous namespace)::namer'
> 13:  ff ff 00 00  f0 3d 76 0a 01 00 00 00  78 00 00 00 00 00 00 00  00 00 00 
> 00 00 00 00 00  00 00 00 00
> 13:               ^~~~~~~~~~~~~~~~~~~~~~~
> 13:               vptr for '(anonymous namespace)::namer'
> 13: SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior 
> ../cpp/src/session.cpp:71:21 in 
> {noformat}
> or more complex:
>   
> {noformat}
> 19: 
> /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/functional:1808:30:
>  runtime error: member call on address 0x60400000d6d0 which does not point to 
> an object of type 'std::__1::__function::__base<void ()>'
> 19: 0x60400000d6d0: note: object is of type 
> 'std::__1::__function::__func<std::__1::__bind<void ((anonymous 
> namespace)::hang_tester::*)(proton::container*), (anonymous 
> namespace)::hang_tester*, proton::container*>, 
> std::__1::allocator<std::__1::__bind<void ((anonymous 
> namespace)::hang_tester::*)(proton::container*), (anonymous 
> namespace)::hang_tester*, proton::container*> >, void ()>'
> 19:  1d 00 80 0b  b0 f5 43 0e 01 00 00 00  e0 c2 40 0e 01 00 00 00  00 00 00 
> 00 00 00 00 00  40 98 84 e1
> 19:               ^~~~~~~~~~~~~~~~~~~~~~~
> 19:               vptr for 
> 'std::__1::__function::__func<std::__1::__bind<void ((anonymous 
> namespace)::hang_tester::*)(proton::container*), (anonymous 
> namespace)::hang_tester*, proton::container*>, 
> std::__1::allocator<std::__1::__bind<void ((anonymous 
> namespace)::hang_tester::*)(proton::container*), (anonymous 
> namespace)::hang_tester*, proton::container*> >, void ()>'
> 19: SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior 
> /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/functional:1808:30
>  in 
> {noformat}
> These errors seem to be occuring for the same reason as PROTON-2354 -- the 
> RTTI information is no being correctly generated for some objects and when 
> the UBSAN code goes to check whether the correct object relationships occur 
> it fails because the RTTI information is not correct.
> If the build uses {{-DENABLE_HIDE_UNEXPORTED_SYMBOLS=no}} then these errors 
> go away, so this is a fine workaround. But the solution is undoubtedly the 
> same as PROTON-2354  -- to create some more key functions (as in exported 
> virtual destructors) in some more classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to