-
Notifications
You must be signed in to change notification settings - Fork 35
segfault in all connext request-response tests on Windows #31
Comments
Also, I'd be happy to walk anyone who's interested through the setup I have for a second opinion. |
Here's the back trace for the connext version of
The back trace is different, but the problem traces to this line in our code: And stepping through code I can confirm that the |
As an experiment, I've ported our custom implementation of services from OpenSplice to Connext (only for the static variant) and the tests now pass: As a side benefit, OpenSplice and Connext can interoperate. I also agree with @wjwwood that this is due to a change in |
Holding off on this hoping for an upstream fix to work with VS2015 |
The first engineering build of Connext with VS2015 does not magically make it work (as we had hoped). I have debugged some more on the Windows machine (running |
This has been addressed by building Release on Windows: ament/ament_tools#72 The followup ticket #89 will allow to build Debug again by selecting the corresponding Connext libraries. |
All of the connext based request-response tests and examples crash in the
std::string
implementation with this error:The back trace (of the connext version of
test_server
):It's my belief that this is related to ros2/ros2#31, because when researching that issue I remember a discussion online about how the libc++ developers intentionally caused a link time error even though they could have made it work in order to avoid a run time error which would occur when creating a
std::string
in one library and passing it to a library built with a different version. Here is the summary:http://stackoverflow.com/questions/8454329/why-cant-clang-with-libc-in-c0x-mode-link-this-boostprogram-options-examp/8457799#8457799
And I think that the VS2013 - VS2015 Preview headers do not use this trick, but potentially do change the implementation of
basic_string
, which would cause an issue. This might be expected since they do not encourage you to use binaries built with one VC with binaries built from another.So, it looks to me that we have no bug in our code, but simply that we need newer or from source versions of the RTI libraries to make this work.
The text was updated successfully, but these errors were encountered: