Skip to content

[FastDDS 3.2.2] Crash after startup - windows 11 x64, MSVC 143(VS 2022) #45779

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
chinanewer opened this issue May 31, 2025 · 7 comments · May be fixed by #45795
Open

[FastDDS 3.2.2] Crash after startup - windows 11 x64, MSVC 143(VS 2022) #45779

chinanewer opened this issue May 31, 2025 · 7 comments · May be fixed by #45795

Comments

@chinanewer
Copy link

chinanewer commented May 31, 2025

OS : windows 11 x64
Compiler: MSVC 143 (vs 2022)

The same code can run normally on fastdds 3.2.1 and crash on fastdds 3.2.2 (with foonathan-memory 0.7.4).

And no files are generated in the following path:
C:\ProgramData\eprosima\fastdds_interprocess

The crash occurred when starting the running program. The following is where the crash was captured in the dump file:

KERNELBASE.dll!00007ffecf2e016c()	Unknown
VCRUNTIME140.dll!00007ffe8a7a5267()	Unknown
msvcp140.dll!00007ffe8a7f9502()	Unknown
fastdds-3.2.dll!std::vector<eprosima::fastdds::dds::xtypes::TypeIdentfierWithSize,std::allocator<eprosima::fastdds::dds::xtypes::TypeIdentfierWithSize>>::_Xlength() Line 2141	C++
[Inline Frame] fastdds-3.2.dll!std::vector<eprosima::fastdds::rtps::Locator_t,std::allocator<eprosima::fastdds::rtps::Locator_t>>::_Buy_nonzero(const unsigned __int64) Line 2010	C++
[Inline Frame] fastdds-3.2.dll!std::vector<eprosima::fastdds::rtps::Locator_t,std::allocator<eprosima::fastdds::rtps::Locator_t>>::_Construct_n(const unsigned __int64) Line 2069	C++
[Inline Frame] fastdds-3.2.dll!std::vector<eprosima::fastdds::rtps::Locator_t,std::allocator<eprosima::fastdds::rtps::Locator_t>>::{ctor}(const std::vector<eprosima::fastdds::rtps::Locator_t,std::allocator<eprosima::fastdds::rtps::Locator_t>> &) Line 680	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::LocatorList::LocatorList(const eprosima::fastdds::rtps::LocatorList & list) Line 115	C++
[External Code]	
fastdds-3.2.dll!eprosima::fastdds::rtps::ReaderProxyData::ReaderProxyData(const eprosima::fastdds::rtps::ReaderProxyData & readerInfo) Line 81	C++
fastdds-3.2.dll!eprosima::`anonymous namespace'::make_array<eprosima::fastdds::rtps::ReaderProxyData,0,1,2,3>(eprosima::fastdds::rtps::ReaderProxyData && i, std::integer_sequence<unsigned __int64,0,1,2,3> is) Line 49	C++
[Inline Frame] fastdds-3.2.dll!eprosima::?A0xdf51cdf5::make_array(eprosima::fastdds::rtps::ReaderProxyData &&) Line 56	C++
[Inline Frame] fastdds-3.2.dll!eprosima::ProxyPool<eprosima::fastdds::rtps::ReaderProxyData,4>::{ctor}(eprosima::fastdds::rtps::ReaderProxyData &&) Line 172	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::security::SecurityManager::SecurityManager(eprosima::fastdds::rtps::RTPSParticipantImpl * participant, eprosima::fastdds::rtps::security::ISecurityPluginFactory & plugin_factory) Line 98	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::RTPSParticipantImpl::RTPSParticipantImpl(unsigned int domain_id, const eprosima::fastdds::rtps::RTPSParticipantAttributes & PParam, const eprosima::fastdds::rtps::GuidPrefix_t & guidP, const eprosima::fastdds::rtps::GuidPrefix_t & persistence_guid, eprosima::fastdds::rtps::RTPSParticipant * par, eprosima::fastdds::rtps::RTPSParticipantListener * plisten) Line 268	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::RTPSParticipantImpl::RTPSParticipantImpl(unsigned int domain_id, const eprosima::fastdds::rtps::RTPSParticipantAttributes & PParam, const eprosima::fastdds::rtps::GuidPrefix_t & guidP, eprosima::fastdds::rtps::RTPSParticipant * par, eprosima::fastdds::rtps::RTPSParticipantListener * plisten) Line 349	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::RTPSDomainImpl::createParticipant(unsigned int domain_id, bool enabled, const eprosima::fastdds::rtps::RTPSParticipantAttributes & attrs, eprosima::fastdds::rtps::RTPSParticipantListener * listen) Line 280	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::RTPSDomain::createParticipant(unsigned int domain_id, bool enabled, const eprosima::fastdds::rtps::RTPSParticipantAttributes & attrs, eprosima::fastdds::rtps::RTPSParticipantListener * listen) Line 139	C++
fastdds-3.2.dll!eprosima::fastdds::dds::DomainParticipantImpl::enable() Line 294	C++
fastdds-3.2.dll!eprosima::fastdds::statistics::dds::DomainParticipantImpl::enable() Line 261	C++
fastdds-3.2.dll!eprosima::fastdds::dds::DomainParticipant::enable() Line 112	C++
fastdds-3.2.dll!eprosima::fastdds::dds::DomainParticipantFactory::create_participant(unsigned int did, const eprosima::fastdds::dds::DomainParticipantQos & qos, eprosima::fastdds::dds::DomainParticipantListener * listener, const eprosima::fastdds::dds::StatusMask & mask) Line 190	C++

@chinanewer
Copy link
Author

When I try to use fastdds 3.2.2+foonathan memory 0.7.3 again, Some files are generated in "C:\ProgramData\eprosima\fastdds_interprocess" ,I receive the following error:

KERNELBASE.dll!00007ffecf2e016c()	Unknown
VCRUNTIME140.dll!00007ffe8a7a5267()	Unknown
fastdds-3.2.dll!boost::container::throw_bad_alloc() Line 107	C++
[External Code]	
[Inline Frame] fastdds-3.2.dll!std::vector<eprosima::fastdds::rtps::Locator_t,std::allocator<eprosima::fastdds::rtps::Locator_t>>::_Buy_nonzero(const unsigned __int64) Line 2013	C++
[Inline Frame] fastdds-3.2.dll!std::vector<eprosima::fastdds::rtps::Locator_t,std::allocator<eprosima::fastdds::rtps::Locator_t>>::_Construct_n(const unsigned __int64) Line 2069	C++
[Inline Frame] fastdds-3.2.dll!std::vector<eprosima::fastdds::rtps::Locator_t,std::allocator<eprosima::fastdds::rtps::Locator_t>>::{ctor}(const std::vector<eprosima::fastdds::rtps::Locator_t,std::allocator<eprosima::fastdds::rtps::Locator_t>> &) Line 680	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::LocatorList::LocatorList(const eprosima::fastdds::rtps::LocatorList & list) Line 115	C++
[External Code]	
fastdds-3.2.dll!eprosima::fastdds::rtps::ReaderProxyData::ReaderProxyData(const eprosima::fastdds::rtps::ReaderProxyData & readerInfo) Line 81	C++
fastdds-3.2.dll!eprosima::`anonymous namespace'::make_array<eprosima::fastdds::rtps::ReaderProxyData,0,1,2,3>(eprosima::fastdds::rtps::ReaderProxyData && i, std::integer_sequence<unsigned __int64,0,1,2,3> is) Line 49	C++
[Inline Frame] fastdds-3.2.dll!eprosima::?A0x2a543490::make_array(eprosima::fastdds::rtps::ReaderProxyData &&) Line 56	C++
[Inline Frame] fastdds-3.2.dll!eprosima::ProxyPool<eprosima::fastdds::rtps::ReaderProxyData,4>::{ctor}(eprosima::fastdds::rtps::ReaderProxyData &&) Line 172	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::PDP::PDP(eprosima::fastdds::rtps::BuiltinProtocols * built, const eprosima::fastdds::rtps::RTPSParticipantAllocationAttributes & allocation) Line 97	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::PDPSimple::PDPSimple(eprosima::fastdds::rtps::BuiltinProtocols * built, const eprosima::fastdds::rtps::RTPSParticipantAllocationAttributes & allocation) Line 93	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::BuiltinProtocols::initBuiltinProtocols(eprosima::fastdds::rtps::RTPSParticipantImpl * p_part, eprosima::fastdds::rtps::BuiltinAttributes & attributes) Line 99	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::RTPSParticipantImpl::setup_builtin_protocols() Line 738	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::RTPSParticipantImpl::RTPSParticipantImpl(unsigned int domain_id, const eprosima::fastdds::rtps::RTPSParticipantAttributes & PParam, const eprosima::fastdds::rtps::GuidPrefix_t & guidP, const eprosima::fastdds::rtps::GuidPrefix_t & persistence_guid, eprosima::fastdds::rtps::RTPSParticipant * par, eprosima::fastdds::rtps::RTPSParticipantListener * plisten) Line 322	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::RTPSParticipantImpl::RTPSParticipantImpl(unsigned int domain_id, const eprosima::fastdds::rtps::RTPSParticipantAttributes & PParam, const eprosima::fastdds::rtps::GuidPrefix_t & guidP, eprosima::fastdds::rtps::RTPSParticipant * par, eprosima::fastdds::rtps::RTPSParticipantListener * plisten) Line 349	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::RTPSDomainImpl::createParticipant(unsigned int domain_id, bool enabled, const eprosima::fastdds::rtps::RTPSParticipantAttributes & attrs, eprosima::fastdds::rtps::RTPSParticipantListener * listen) Line 280	C++
fastdds-3.2.dll!eprosima::fastdds::rtps::RTPSDomain::createParticipant(unsigned int domain_id, bool enabled, const eprosima::fastdds::rtps::RTPSParticipantAttributes & attrs, eprosima::fastdds::rtps::RTPSParticipantListener * listen) Line 139	C++
fastdds-3.2.dll!eprosima::fastdds::dds::DomainParticipantImpl::enable() Line 294	C++
fastdds-3.2.dll!eprosima::fastdds::statistics::dds::DomainParticipantImpl::enable() Line 261	C++
fastdds-3.2.dll!eprosima::fastdds::dds::DomainParticipant::enable() Line 112	C++
fastdds-3.2.dll!eprosima::fastdds::dds::DomainParticipantFactory::create_participant(unsigned int did, const eprosima::fastdds::dds::DomainParticipantQos & qos, eprosima::fastdds::dds::DomainParticipantListener * listener, const eprosima::fastdds::dds::StatusMask & mask) Line 190	C++

@chinanewer
Copy link
Author

Added descriptions to the following pages:
eProsima/Fast-DDS#5847

@dg0yt
Copy link
Contributor

dg0yt commented Jun 1, 2025

foonathan-memory 0.7-4 came with a change intented to adress a debug config issue. Cf. #45542.

But does it make a difference here? Do I understand correctly?

fastdds 3.2.1 fastdds 3.2.2
foonathan-memory 0.7-3 🔥
foonathan-memory 0.7-4 🔥

@chinanewer
Copy link
Author

chinanewer commented Jun 2, 2025

foonathan-memory 0.7-4 came with a change intented to adress a debug config issue. Cf. #45542.

But does it make a difference here? Do I understand correctly?
fastdds 3.2.1 fastdds 3.2.2
foonathan-memory 0.7-3 ✅ 🔥
foonathan-memory 0.7-4 ✅ 🔥

On vcpkg, I switched back to the version compiled before changing the foonathan-memory version. Could it be caused by changes in other underlying libraries?
I'm not sure if this change was caused by other external factors.
In my error message above, both versions are problematic, just in the "C:\ProgramData\eprosima\fastdds_interprocess" folder.

@dg0yt
Copy link
Contributor

dg0yt commented Jun 2, 2025

Do I understand correctly?

fastdds 3.2.1 fastdds 3.2.2
foonathan-memory 0.7-3
foonathan-memory 0.7-4 🔥 🔥

@Faaux
Copy link
Contributor

Faaux commented Jun 2, 2025

Likely related to #45544 and #45795.

Using vcpkg as is, with an overlay port of PR #45795 works normally for me.

@Faaux Faaux linked a pull request Jun 2, 2025 that will close this issue
7 tasks
@chinanewer
Copy link
Author

chinanewer commented Jun 2, 2025

Do I understand correctly?
fastdds 3.2.1 fastdds 3.2.2
foonathan-memory 0.7-3 ✅ ✅
foonathan-memory 0.7-4 🔥 🔥

fastdds 3.1.x + foonathan-memory 0.7-3 ✅ - Sorry, 3.1.x was mistakenly written as 3.2.1
fastdds 3.1.x + foonathan-memory 0.7-4 no try
fastdds 3.2.2 + foonathan-memory 0.7-3/0.7-4 🔥

FastDDS project members mentioned that it requires the correct FastCDR version.
eProsima/Fast-DDS#5847 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants