NDDS 6.1.0 build failing

2 posts / 0 new
Last post
Offline
Last seen: 2 years 1 month ago
Joined: 03/04/2022
Posts: 2
NDDS 6.1.0 build failing

While attempting to build the python library connectdds-py I bumped into the following error:

c:\program files\rti_connext_dds-6.1.0\include\ndds\hpp\rti\topic\findimpl.hpp(408): warning C4717: 'rti::topic::find_registered_content_filters<std::back_insert_iterator<std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > > >': recursive on all control paths, function will cause runtime stack overflow [C:\Users\brian\AppData\Local\Temp\pip-req-build-gt17dcc1\build\temp.win-amd64-3.10\Release\connext-py\connextdds\connextdds.vcxproj]

The offending code from include/ndds/hpp/rti/topic/findImpl.hpp is listed here:

template<typename BinIterator>
uint32_t find_registered_content_filters(
    const dds::domain::DomainParticipant& participant,
    BinIterator begin)
{
    return find_registered_content_filters(participant.delegate(), begin);
}

Here is some more information from my build environment:

running build_ext
-- Building for: Visual Studio 15 2017
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19044.
-- The C compiler identification is MSVC 19.16.27045.0
-- The CXX compiler identification is MSVC 19.16.27045.0

 I might be missing something, but that does indeed look like a recursive function that will never exit until participant.delegate() returns null, at which time the next call will throw a null reference exception.

Organization:
Keywords:
Offline
Last seen: 2 years 1 month ago
Joined: 03/04/2022
Posts: 2

I just realized that this is a warning, not an error. Nevertheless the build is failing at this point. The warning might be unrelated. I was using python 3.10.2 and pip 21.2.4.

I downgraded to python 3.8.10 and pip 21.1.1 and the build now succeeds.