From 2d02862cb3eca6da8a934491551c11e948895c25 Mon Sep 17 00:00:00 2001 From: Christian Eltzschig Date: Thu, 30 Jun 2022 19:09:57 +0200 Subject: [PATCH 01/22] iox-#1440 Fix file lock leak when lock failed Signed-off-by: Christian Eltzschig --- iceoryx_hoofs/source/posix_wrapper/file_lock.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/iceoryx_hoofs/source/posix_wrapper/file_lock.cpp b/iceoryx_hoofs/source/posix_wrapper/file_lock.cpp index 369bd1ba1a..fc046ef9ab 100644 --- a/iceoryx_hoofs/source/posix_wrapper/file_lock.cpp +++ b/iceoryx_hoofs/source/posix_wrapper/file_lock.cpp @@ -60,6 +60,8 @@ cxx::expected FileLock::initializeFileLock() noexcept return cxx::error(convertErrnoToFileLockError(openCall.get_error().errnum)); } + m_isInitialized = true; + auto lockCall = posixCall(iox_flock)(m_fd, LOCK_EX | LOCK_NB) .failureReturnValue(ERROR_CODE) .suppressErrorMessagesForErrnos(EWOULDBLOCK) From 258d6f8c151e9c35b06c72ddd959acfd9342e999 Mon Sep 17 00:00:00 2001 From: Christian Eltzschig Date: Thu, 30 Jun 2022 19:10:46 +0200 Subject: [PATCH 02/22] iox-#1440 Add release note Signed-off-by: Christian Eltzschig --- doc/website/release-notes/iceoryx-unreleased.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/website/release-notes/iceoryx-unreleased.md b/doc/website/release-notes/iceoryx-unreleased.md index bdc456c1ac..96748fb80a 100644 --- a/doc/website/release-notes/iceoryx-unreleased.md +++ b/doc/website/release-notes/iceoryx-unreleased.md @@ -8,7 +8,7 @@ **Bugfixes:** -- Foo Bar [\#000](https://github.com/eclipse-iceoryx/iceoryx/issues/000) +- Fix FileLock leak when lock failed [\#1440](https://github.com/eclipse-iceoryx/iceoryx/issues/1440) **Refactoring:** @@ -24,4 +24,4 @@ // after #include "new/include.hpp" - ``` \ No newline at end of file + ``` From 6076263f484fa0cc4e544ad87b696f6b78d96e59 Mon Sep 17 00:00:00 2001 From: Christian Eltzschig Date: Thu, 30 Jun 2022 19:52:55 +0200 Subject: [PATCH 03/22] iox-#1338 Backport FreeBSD bugfix to release 2.0 Signed-off-by: Christian Eltzschig --- .github/workflows/build-test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index dcd32cc2d2..1a6e8ac8ce 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -47,7 +47,9 @@ jobs: usesh: true mem: 2048 prepare: pkg install -y cmake git ncurses bash wget bison - run: ./tools/ci/build-test-freebsd.sh + run: | + git config --global --add safe.directory /Users/runner/work/iceoryx/iceoryx + ./tools/ci/build-test-freebsd.sh build-test-windows: runs-on: windows-2019 From 30c64f347a70bca0c43dba4f6585f760fc53bafa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dietrich=20Kr=C3=B6nke?= Date: Fri, 8 Jul 2022 11:27:11 +0200 Subject: [PATCH 04/22] iox-#1476 Replace single quotation mark with apostrophe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Dietrich Krönke --- doc/website/release-notes/.pages | 1 + doc/website/release-notes/iceoryx-v2-0-3.md | 9 +++++++++ iceoryx_posh/source/roudi/process_manager.cpp | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 doc/website/release-notes/iceoryx-v2-0-3.md diff --git a/doc/website/release-notes/.pages b/doc/website/release-notes/.pages index 5502597d58..de59270a83 100644 --- a/doc/website/release-notes/.pages +++ b/doc/website/release-notes/.pages @@ -1,4 +1,5 @@ nav: + - iceoryx-v2-0-3.md - iceoryx-v2-0-2.md - iceoryx-v2-0-1.md - iceoryx-v2-0-0.md diff --git a/doc/website/release-notes/iceoryx-v2-0-3.md b/doc/website/release-notes/iceoryx-v2-0-3.md new file mode 100644 index 0000000000..452bc048f4 --- /dev/null +++ b/doc/website/release-notes/iceoryx-v2-0-3.md @@ -0,0 +1,9 @@ +# iceoryx v2.0.3 + +## [v2.0.3](https://github.com/eclipse-iceoryx/iceoryx/tree/v2.0.2) (tbd) + +[Full Changelog](https://github.com/eclipse-iceoryx/iceoryx/compare/v2.0.2...v2.0.3) + +**Bugfixes:** + +- Build error on certain versions of Windows/Visual Studio [\#1476](https://github.com/eclipse-iceoryx/iceoryx/issues/1476) diff --git a/iceoryx_posh/source/roudi/process_manager.cpp b/iceoryx_posh/source/roudi/process_manager.cpp index 37030d27e8..0e4eabbf28 100644 --- a/iceoryx_posh/source/roudi/process_manager.cpp +++ b/iceoryx_posh/source/roudi/process_manager.cpp @@ -183,7 +183,7 @@ void ProcessManager::evaluateKillError(const Process& process, { LogWarn() << "Process ID " << process.getPid() << " named '" << process.getName() << "' could not be killed with" - << (shutdownPolicy == ShutdownPolicy::SIG_KILL ? "SIGKILL" : "SIGTERM") << " for unknown reason: ’" + << (shutdownPolicy == ShutdownPolicy::SIG_KILL ? "SIGKILL" : "SIGTERM") << " for unknown reason: '" << errorString << "'"; errorHandler(Error::kPOSH__ROUDI_PROCESS_SHUTDOWN_FAILED, nullptr, ErrorLevel::SEVERE); } From c3883d0b708d800f0ace017343a89ecdf4948aea Mon Sep 17 00:00:00 2001 From: Christian Eltzschig Date: Tue, 12 Jul 2022 11:16:38 +0200 Subject: [PATCH 05/22] iox-#1440 Do not remove file lock when lock failed on construction Signed-off-by: Christian Eltzschig --- iceoryx_hoofs/source/posix_wrapper/file_lock.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/iceoryx_hoofs/source/posix_wrapper/file_lock.cpp b/iceoryx_hoofs/source/posix_wrapper/file_lock.cpp index fc046ef9ab..e3aedde844 100644 --- a/iceoryx_hoofs/source/posix_wrapper/file_lock.cpp +++ b/iceoryx_hoofs/source/posix_wrapper/file_lock.cpp @@ -60,8 +60,6 @@ cxx::expected FileLock::initializeFileLock() noexcept return cxx::error(convertErrnoToFileLockError(openCall.get_error().errnum)); } - m_isInitialized = true; - auto lockCall = posixCall(iox_flock)(m_fd, LOCK_EX | LOCK_NB) .failureReturnValue(ERROR_CODE) .suppressErrorMessagesForErrnos(EWOULDBLOCK) @@ -69,12 +67,15 @@ cxx::expected FileLock::initializeFileLock() noexcept if (lockCall.has_error()) { - closeFileDescriptor().or_else([](auto) { - std::cerr << "Unable to close file lock in error related cleanup during initialization." << std::endl; + posixCall(iox_close)(m_fd).failureReturnValue(ERROR_CODE).evaluate().or_else([&](auto& result) { + IOX_DISCARD_RESULT(this->convertErrnoToFileLockError(result.errnum)); + std::cerr << "Unable to close the file handle to the file lock \"" << m_fileLockPath << "\"" << std::endl; }); + // possible errors in closeFileDescriptor() are masked and we inform the user about the actual error return cxx::error(convertErrnoToFileLockError(lockCall.get_error().errnum)); } + m_isInitialized = true; return cxx::success<>(); } From cfd07194b8daacf2bcbb1d28358d3c5f569de09b Mon Sep 17 00:00:00 2001 From: Mathias Kraus Date: Thu, 14 Jul 2022 16:15:29 +0200 Subject: [PATCH 06/22] iox-#1504 Enable CI for integration branches --- .github/workflows/build-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index dcd32cc2d2..715569a3c8 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -7,7 +7,7 @@ on: push: branches: [ master ] pull_request: - branches: [ master, release* ] + branches: [ master, release*, integration* ] jobs: pre-flight-check: From 02e0fed92505681601a8401bc7584614a53eff82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dietrich=20Kr=C3=B6nke?= Date: Thu, 14 Jul 2022 15:46:51 +0200 Subject: [PATCH 07/22] iox-#1481 Set PREFIX in CMake directly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Dietrich Krönke --- .../example/iceoryx_component/CMakeLists.txt | 4 +++- doc/website/release-notes/iceoryx-unreleased.md | 1 + iceoryx_binding_c/CMakeLists.txt | 15 +-------------- iceoryx_dds/CMakeLists.txt | 15 +-------------- iceoryx_hoofs/CMakeLists.txt | 15 +-------------- iceoryx_posh/CMakeLists.txt | 15 +-------------- tools/introspection/CMakeLists.txt | 15 +-------------- 7 files changed, 9 insertions(+), 71 deletions(-) diff --git a/doc/aspice_swe3_4/example/iceoryx_component/CMakeLists.txt b/doc/aspice_swe3_4/example/iceoryx_component/CMakeLists.txt index b252dc2251..ecac0dcab6 100644 --- a/doc/aspice_swe3_4/example/iceoryx_component/CMakeLists.txt +++ b/doc/aspice_swe3_4/example/iceoryx_component/CMakeLists.txt @@ -21,6 +21,8 @@ find_package(iceoryx_hoofs REQUIRED) include(IceoryxPlatform) +set(PREFIX iceoryx/v${CMAKE_PROJECT_VERSION}) + # ########## lib ########## # @@ -84,7 +86,7 @@ target_include_directories(${PROJECT_PREFIX}_moduletests PRIVATE . source/exampl # TODO: fix conversion warnings target_compile_options(${PROJECT_PREFIX}_moduletests PRIVATE ${TEST_CXX_FLAGS}) target_link_libraries(${PROJECT_PREFIX}_moduletests ${TEST_LINK_LIBS}) -set_target_properties(${PROJECT_PREFIX}_moduletests PROPERTIES +set_target_properties(${PROJECT_PREFIX}_moduletests PROPERTIES CXX_STANDARD_REQUIRED ON CXX_STANDARD ${ICEORYX_CXX_STANDARD} POSITION_INDEPENDENT_CODE ON diff --git a/doc/website/release-notes/iceoryx-unreleased.md b/doc/website/release-notes/iceoryx-unreleased.md index 96748fb80a..1d5644d7ef 100644 --- a/doc/website/release-notes/iceoryx-unreleased.md +++ b/doc/website/release-notes/iceoryx-unreleased.md @@ -9,6 +9,7 @@ **Bugfixes:** - Fix FileLock leak when lock failed [\#1440](https://github.com/eclipse-iceoryx/iceoryx/issues/1440) +- Fix INTERFACE_INCLUDE_DIRECTORIES in CMake [\#1481](https://github.com/eclipse-iceoryx/iceoryx/issues/1481) **Refactoring:** diff --git a/iceoryx_binding_c/CMakeLists.txt b/iceoryx_binding_c/CMakeLists.txt index 774d424e50..16a9730975 100644 --- a/iceoryx_binding_c/CMakeLists.txt +++ b/iceoryx_binding_c/CMakeLists.txt @@ -34,20 +34,7 @@ if(CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME MATCHES Darwin) option(BUILD_SHARED_LIBS "Create shared libraries by default" ON) endif() -option(MAKE_UNIQUE_INCLUDEDIR - "When ON headers are installed to a path ending with folders called \ - iceoryx/vX.Y.Z/ . This avoids include directory search order issues when \ - overriding this package from a merged catkin, ament, or colcon workspace." - ON) - -if(MAKE_UNIQUE_INCLUDEDIR) - set(_unique_dir "iceoryx/v${IOX_VERSION_STRING}") - if(PREFIX STREQUAL "") - set(PREFIX "${_unique_dir}") - else() - set(PREFIX "${PREFIX}/${_unique_dir}") - endif() -endif() +set(PREFIX iceoryx/v${CMAKE_PROJECT_VERSION}) # ########## set variables for export ########## diff --git a/iceoryx_dds/CMakeLists.txt b/iceoryx_dds/CMakeLists.txt index 8b1bb76f26..c400a93564 100644 --- a/iceoryx_dds/CMakeLists.txt +++ b/iceoryx_dds/CMakeLists.txt @@ -32,20 +32,7 @@ find_package(iceoryx_posh REQUIRED) include(IceoryxPackageHelper) include(IceoryxPlatform) -option(MAKE_UNIQUE_INCLUDEDIR - "When ON headers are installed to a path ending with folders called \ - iceoryx/vX.Y.Z/ . This avoids include directory search order issues when \ - overriding this package from a merged catkin, ament, or colcon workspace." - ON) - -if(MAKE_UNIQUE_INCLUDEDIR) - set(_unique_dir "iceoryx/v${IOX_VERSION_STRING}") - if(PREFIX STREQUAL "") - set(PREFIX "${_unique_dir}") - else() - set(PREFIX "${PREFIX}/${_unique_dir}") - endif() -endif() +set(PREFIX iceoryx/v${CMAKE_PROJECT_VERSION}) if(CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME MATCHES Darwin) option(BUILD_SHARED_LIBS "Create shared libraries by default" ON) diff --git a/iceoryx_hoofs/CMakeLists.txt b/iceoryx_hoofs/CMakeLists.txt index a8238ffefa..5e331ff24f 100644 --- a/iceoryx_hoofs/CMakeLists.txt +++ b/iceoryx_hoofs/CMakeLists.txt @@ -28,20 +28,7 @@ if(CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME MATCHES Darwin) option(BUILD_SHARED_LIBS "Create shared libraries by default" ON) endif() -option(MAKE_UNIQUE_INCLUDEDIR - "When ON headers are installed to a path ending with folders called \ - iceoryx/vX.Y.Z/ . This avoids include directory search order issues when \ - overriding this package from a merged catkin, ament, or colcon workspace." - ON) - -if(MAKE_UNIQUE_INCLUDEDIR) - set(_unique_dir "iceoryx/v${IOX_VERSION_STRING}") - if(PREFIX STREQUAL "") - set(PREFIX "${_unique_dir}") - else() - set(PREFIX "${PREFIX}/${_unique_dir}") - endif() -endif() +set(PREFIX iceoryx/v${CMAKE_PROJECT_VERSION}) if(CLANG_TIDY) find_program( diff --git a/iceoryx_posh/CMakeLists.txt b/iceoryx_posh/CMakeLists.txt index 3ed27462b8..aa1f007978 100644 --- a/iceoryx_posh/CMakeLists.txt +++ b/iceoryx_posh/CMakeLists.txt @@ -44,20 +44,7 @@ if(CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME MATCHES Darwin) option(BUILD_SHARED_LIBS "Create shared libraries by default" ON) endif() -option(MAKE_UNIQUE_INCLUDEDIR - "When ON headers are installed to a path ending with folders called \ - iceoryx/vX.Y.Z/ . This avoids include directory search order issues when \ - overriding this package from a merged catkin, ament, or colcon workspace." - ON) - -if(MAKE_UNIQUE_INCLUDEDIR) - set(_unique_dir "iceoryx/v${IOX_VERSION_STRING}") - if(PREFIX STREQUAL "") - set(PREFIX "${_unique_dir}") - else() - set(PREFIX "${PREFIX}/${_unique_dir}") - endif() -endif() +set(PREFIX iceoryx/v${CMAKE_PROJECT_VERSION}) include(cmake/iceoryxversions.cmake) diff --git a/tools/introspection/CMakeLists.txt b/tools/introspection/CMakeLists.txt index 71c907ae33..bc4e6cfb1b 100644 --- a/tools/introspection/CMakeLists.txt +++ b/tools/introspection/CMakeLists.txt @@ -27,20 +27,7 @@ find_package(iceoryx_posh REQUIRED) include(IceoryxPackageHelper) include(IceoryxPlatform) -option(MAKE_UNIQUE_INCLUDEDIR - "When ON headers are installed to a path ending with folders called \ - iceoryx/vX.Y.Z/ . This avoids include directory search order issues when \ - overriding this package from a merged catkin, ament, or colcon workspace." - ON) - -if(MAKE_UNIQUE_INCLUDEDIR) - set(_unique_dir "iceoryx/v${IOX_VERSION_STRING}") - if(PREFIX STREQUAL "") - set(PREFIX "${_unique_dir}") - else() - set(PREFIX "${PREFIX}/${_unique_dir}") - endif() -endif() +set(PREFIX iceoryx/v${CMAKE_PROJECT_VERSION}) # cmake doesn't find ncurses under QNX; let the compiler complain if the header is missing if(NOT QNX) From dbb3c55b011fe458961709e155b69d880d3758f6 Mon Sep 17 00:00:00 2001 From: Jakub Sosnovec Date: Mon, 26 Sep 2022 15:23:30 +0200 Subject: [PATCH 08/22] iox-#1668 Set chunk header originId always --- .../iceoryx_posh/internal/popo/building_blocks/chunk_sender.inl | 1 + 1 file changed, 1 insertion(+) diff --git a/iceoryx_posh/include/iceoryx_posh/internal/popo/building_blocks/chunk_sender.inl b/iceoryx_posh/include/iceoryx_posh/internal/popo/building_blocks/chunk_sender.inl index 7fab3eb641..cba289f9cc 100644 --- a/iceoryx_posh/include/iceoryx_posh/internal/popo/building_blocks/chunk_sender.inl +++ b/iceoryx_posh/include/iceoryx_posh/internal/popo/building_blocks/chunk_sender.inl @@ -128,6 +128,7 @@ ChunkSender::tryAllocate(const UniquePortId originId, auto chunkSize = lastChunkChunkHeader->chunkSize(); lastChunkChunkHeader->~ChunkHeader(); new (lastChunkChunkHeader) mepoo::ChunkHeader(chunkSize, chunkSettings); + lastChunkChunkHeader->setOriginId(originId); return cxx::success(lastChunkChunkHeader); } else From 0c982e0a98b57b145131b6ce6696856ac9c26071 Mon Sep 17 00:00:00 2001 From: Jakub Sosnovec Date: Tue, 27 Sep 2022 10:31:20 +0200 Subject: [PATCH 09/22] iox-#1668 Add test & release notes --- doc/website/release-notes/iceoryx-v2-0-3.md | 1 + ...est_publisher_subscriber_communication.cpp | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/doc/website/release-notes/iceoryx-v2-0-3.md b/doc/website/release-notes/iceoryx-v2-0-3.md index 452bc048f4..95998e26e7 100644 --- a/doc/website/release-notes/iceoryx-v2-0-3.md +++ b/doc/website/release-notes/iceoryx-v2-0-3.md @@ -7,3 +7,4 @@ **Bugfixes:** - Build error on certain versions of Windows/Visual Studio [\#1476](https://github.com/eclipse-iceoryx/iceoryx/issues/1476) +- `m_originId` in `mepoo::ChunkHeader` sometimes not set [\#1668](https://github.com/eclipse-iceoryx/iceoryx/issues/1668) diff --git a/iceoryx_posh/test/integrationtests/test_publisher_subscriber_communication.cpp b/iceoryx_posh/test/integrationtests/test_publisher_subscriber_communication.cpp index 57b6508c71..0d46525ae8 100644 --- a/iceoryx_posh/test/integrationtests/test_publisher_subscriber_communication.cpp +++ b/iceoryx_posh/test/integrationtests/test_publisher_subscriber_communication.cpp @@ -711,4 +711,33 @@ TEST_F(PublisherSubscriberCommunication_test, MixedOptionsSetupWorksWithBlocking EXPECT_THAT(subscriberNonBlocking->take().has_error(), Eq(true)); } +TEST_F(PublisherSubscriberCommunication_test, PublisherUniqueIdMatchesReceivedSample) +{ + ::testing::Test::RecordProperty("TEST_ID", "decbfcdd-778f-4e18-b6a8-395d400fdd80"); + + auto publisher = createPublisher(); + this->InterOpWait(); + auto subscriber = createSubscriber(); + this->InterOpWait(); + + const auto uid = publisher->getUid(); + + for (int i = 0; i < 10; ++i) + { + ASSERT_FALSE(publisher->loan() + .and_then([&](auto& sample) { + *sample = i; + sample.publish(); + }) + .has_error()); + + EXPECT_FALSE(subscriber->take() + .and_then([&](auto& sample) { + EXPECT_THAT(*sample, Eq(i)); + EXPECT_THAT(sample.getChunkHeader()->originId(), Eq(uid)); + }) + .has_error()); + } +} + } // namespace From 442ce4c3c3f4d976d075d7481eaeaea1a00130d6 Mon Sep 17 00:00:00 2001 From: Jakub Sosnovec Date: Tue, 27 Sep 2022 15:17:20 +0200 Subject: [PATCH 10/22] iox-#1668 Add copyright header --- .../iceoryx_posh/internal/popo/building_blocks/chunk_sender.inl | 1 + .../integrationtests/test_publisher_subscriber_communication.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/iceoryx_posh/include/iceoryx_posh/internal/popo/building_blocks/chunk_sender.inl b/iceoryx_posh/include/iceoryx_posh/internal/popo/building_blocks/chunk_sender.inl index cba289f9cc..bfb57adafe 100644 --- a/iceoryx_posh/include/iceoryx_posh/internal/popo/building_blocks/chunk_sender.inl +++ b/iceoryx_posh/include/iceoryx_posh/internal/popo/building_blocks/chunk_sender.inl @@ -1,5 +1,6 @@ // Copyright (c) 2020 by Robert Bosch GmbH. All rights reserved. // Copyright (c) 2021 - 2022 by Apex.AI Inc. All rights reserved. +// Copyright (c) 2022 by NXP. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/iceoryx_posh/test/integrationtests/test_publisher_subscriber_communication.cpp b/iceoryx_posh/test/integrationtests/test_publisher_subscriber_communication.cpp index 0d46525ae8..d080a02852 100644 --- a/iceoryx_posh/test/integrationtests/test_publisher_subscriber_communication.cpp +++ b/iceoryx_posh/test/integrationtests/test_publisher_subscriber_communication.cpp @@ -1,4 +1,5 @@ // Copyright (c) 2021 - 2022 by Apex.AI Inc. All rights reserved. +// Copyright (c) 2022 by NXP. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. From fc99e05bb5df29f45fea1d1fee8430407532fc51 Mon Sep 17 00:00:00 2001 From: Simon Hoinkis Date: Tue, 17 Jan 2023 10:58:53 +0100 Subject: [PATCH 11/22] iox-#1504 Move release notes to 'v2.0.3' file Signed-off-by: Simon Hoinkis --- doc/website/release-notes/iceoryx-unreleased.md | 3 +-- doc/website/release-notes/iceoryx-v2-0-3.md | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/website/release-notes/iceoryx-unreleased.md b/doc/website/release-notes/iceoryx-unreleased.md index 1d5644d7ef..79c9827542 100644 --- a/doc/website/release-notes/iceoryx-unreleased.md +++ b/doc/website/release-notes/iceoryx-unreleased.md @@ -8,8 +8,7 @@ **Bugfixes:** -- Fix FileLock leak when lock failed [\#1440](https://github.com/eclipse-iceoryx/iceoryx/issues/1440) -- Fix INTERFACE_INCLUDE_DIRECTORIES in CMake [\#1481](https://github.com/eclipse-iceoryx/iceoryx/issues/1481) +* Foo Bar #000 **Refactoring:** diff --git a/doc/website/release-notes/iceoryx-v2-0-3.md b/doc/website/release-notes/iceoryx-v2-0-3.md index 95998e26e7..b1a867f3c8 100644 --- a/doc/website/release-notes/iceoryx-v2-0-3.md +++ b/doc/website/release-notes/iceoryx-v2-0-3.md @@ -7,4 +7,6 @@ **Bugfixes:** - Build error on certain versions of Windows/Visual Studio [\#1476](https://github.com/eclipse-iceoryx/iceoryx/issues/1476) +- Fix FileLock leak when lock failed [\#1440](https://github.com/eclipse-iceoryx/iceoryx/issues/1440) +- Fix INTERFACE_INCLUDE_DIRECTORIES in CMake [\#1481](https://github.com/eclipse-iceoryx/iceoryx/issues/1481) - `m_originId` in `mepoo::ChunkHeader` sometimes not set [\#1668](https://github.com/eclipse-iceoryx/iceoryx/issues/1668) From 7ae5d8ce03fea51c3c4366988421d561cb7dbf27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dietrich=20Kr=C3=B6nke?= Date: Tue, 12 Jul 2022 14:31:24 +0200 Subject: [PATCH 12/22] iox-#1338 Optimize FreeBSD build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Dietrich Krönke --- .github/workflows/build-test.yml | 2 +- tools/ci/build-test-freebsd.sh | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 7a389a7148..594f3bb1c6 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -35,7 +35,7 @@ jobs: # prevent stuck jobs consuming macos runners for 6 hours timeout-minutes: 60 needs: pre-flight-check - runs-on: macos-10.15 + runs-on: macos-12 steps: - uses: actions/checkout@v2 with: diff --git a/tools/ci/build-test-freebsd.sh b/tools/ci/build-test-freebsd.sh index 8fd2f1c653..aa277c539a 100755 --- a/tools/ci/build-test-freebsd.sh +++ b/tools/ci/build-test-freebsd.sh @@ -32,12 +32,9 @@ msg "compiler version: $(clang --version)" export OSTYPE="darwin" -./tools/iceoryx_build_test.sh clean build-strict build-all out-of-tree +./tools/iceoryx_build_test.sh clean build-strict build-test examples msg "running tests (excluding timing_tests)" cd "${WORKSPACE}"/build make all_tests cd "${WORKSPACE}" - -msg "building RouDi examples without TOML support" -./tools/iceoryx_build_test.sh out-of-tree examples toml-config-off clean From 080d79db7b77b692f9d71d5b8dcb53e1a5d34903 Mon Sep 17 00:00:00 2001 From: Simon Hoinkis Date: Tue, 17 Jan 2023 11:15:28 +0100 Subject: [PATCH 13/22] iox-#1504 Revert changes in unreleased file Signed-off-by: Simon Hoinkis --- doc/website/release-notes/iceoryx-unreleased.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/website/release-notes/iceoryx-unreleased.md b/doc/website/release-notes/iceoryx-unreleased.md index 79c9827542..bdc456c1ac 100644 --- a/doc/website/release-notes/iceoryx-unreleased.md +++ b/doc/website/release-notes/iceoryx-unreleased.md @@ -8,7 +8,7 @@ **Bugfixes:** -* Foo Bar #000 +- Foo Bar [\#000](https://github.com/eclipse-iceoryx/iceoryx/issues/000) **Refactoring:** @@ -24,4 +24,4 @@ // after #include "new/include.hpp" - ``` + ``` \ No newline at end of file From 482e89c38f5e828970307dd071b2e6c47cbc3e64 Mon Sep 17 00:00:00 2001 From: Christian Eltzschig Date: Thu, 7 Jul 2022 02:03:44 +0200 Subject: [PATCH 14/22] iox-#1196 Double FreeBSD memory to prevent CI crashes Signed-off-by: Christian Eltzschig --- .github/workflows/build-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 594f3bb1c6..a92c911a20 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -45,7 +45,7 @@ jobs: uses: vmactions/freebsd-vm@v0.1.6 with: usesh: true - mem: 2048 + mem: 4096 prepare: pkg install -y cmake git ncurses bash wget bison run: | git config --global --add safe.directory /Users/runner/work/iceoryx/iceoryx From 485d8153569f636c63a9549f12a900afe04a402b Mon Sep 17 00:00:00 2001 From: Christian Eltzschig Date: Mon, 12 Sep 2022 10:41:24 +0200 Subject: [PATCH 15/22] iox-#1625 Use major tag in freebsd ci script Signed-off-by: Christian Eltzschig --- .github/workflows/build-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index a92c911a20..89e1ef4ecb 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -42,7 +42,7 @@ jobs: ref: 'master' - name: Unix (FreeBSD) test id: Test - uses: vmactions/freebsd-vm@v0.1.6 + uses: vmactions/freebsd-vm@v0 with: usesh: true mem: 4096 From afc4647755825bff845de11977c94395cfd80fb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dietrich=20Kr=C3=B6nke?= Date: Tue, 25 Oct 2022 17:24:06 +0200 Subject: [PATCH 16/22] iox-#1516 Prevent copyback on freebsd CI job MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Dietrich Krönke --- .github/workflows/build-test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 89e1ef4ecb..e908550502 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -45,6 +45,7 @@ jobs: uses: vmactions/freebsd-vm@v0 with: usesh: true + copyback: false mem: 4096 prepare: pkg install -y cmake git ncurses bash wget bison run: | From 0446186bd70d10e8a40dfce632b3c5a63efa37f2 Mon Sep 17 00:00:00 2001 From: Simon Hoinkis Date: Tue, 17 Jan 2023 13:41:46 +0100 Subject: [PATCH 17/22] iox-#1504 Update version to 'v2.0.3' Signed-off-by: Simon Hoinkis --- VERSION | 2 +- cmake/package/package.cmake | 2 +- doc/aspice_swe3_4/CMakeLists.txt | 2 +- iceoryx_binding_c/CMakeLists.txt | 2 +- iceoryx_binding_c/package.xml | 2 +- iceoryx_dds/CMakeLists.txt | 2 +- iceoryx_hoofs/CMakeLists.txt | 2 +- iceoryx_hoofs/package.xml | 2 +- iceoryx_integrationtest/package.xml | 2 +- iceoryx_posh/CMakeLists.txt | 2 +- iceoryx_posh/package.xml | 2 +- tools/introspection/CMakeLists.txt | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/VERSION b/VERSION index e9307ca575..50ffc5aa7f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.2 +2.0.3 diff --git a/cmake/package/package.cmake b/cmake/package/package.cmake index 44f5e59842..0910aa381f 100644 --- a/cmake/package/package.cmake +++ b/cmake/package/package.cmake @@ -14,7 +14,7 @@ # # SPDX-License-Identifier: Apache-2.0 cmake_minimum_required(VERSION 3.16) -set(IOX_VERSION_STRING "2.0.2") +set(IOX_VERSION_STRING "2.0.3") project(iceoryx_package VERSION ${IOX_VERSION_STRING}) diff --git a/doc/aspice_swe3_4/CMakeLists.txt b/doc/aspice_swe3_4/CMakeLists.txt index b7d0ac81ab..c1e8373151 100644 --- a/doc/aspice_swe3_4/CMakeLists.txt +++ b/doc/aspice_swe3_4/CMakeLists.txt @@ -16,7 +16,7 @@ cmake_minimum_required(VERSION 3.16) -set(IOX_VERSION_STRING "2.0.2") +set(IOX_VERSION_STRING "2.0.3") project(iceoryx_doc VERSION ${IOX_VERSION_STRING}) diff --git a/iceoryx_binding_c/CMakeLists.txt b/iceoryx_binding_c/CMakeLists.txt index 16a9730975..258d3a5f82 100644 --- a/iceoryx_binding_c/CMakeLists.txt +++ b/iceoryx_binding_c/CMakeLists.txt @@ -16,7 +16,7 @@ # SPDX-License-Identifier: Apache-2.0 cmake_minimum_required(VERSION 3.16) -set(IOX_VERSION_STRING "2.0.2") +set(IOX_VERSION_STRING "2.0.3") diff --git a/iceoryx_binding_c/package.xml b/iceoryx_binding_c/package.xml index adb48d14ce..31e5427a42 100644 --- a/iceoryx_binding_c/package.xml +++ b/iceoryx_binding_c/package.xml @@ -2,7 +2,7 @@ iceoryx_binding_c - 2.0.2 + 2.0.3 Eclipse iceoryx inter-process-communication (IPC) middleware C-Language Binding Eclipse Foundation, Inc. Apache 2.0 diff --git a/iceoryx_dds/CMakeLists.txt b/iceoryx_dds/CMakeLists.txt index c400a93564..8a3f4119b8 100644 --- a/iceoryx_dds/CMakeLists.txt +++ b/iceoryx_dds/CMakeLists.txt @@ -16,7 +16,7 @@ # SPDX-License-Identifier: Apache-2.0 cmake_minimum_required(VERSION 3.16) -set(IOX_VERSION_STRING "2.0.2") +set(IOX_VERSION_STRING "2.0.3") project(iceoryx_dds VERSION ${IOX_VERSION_STRING}) diff --git a/iceoryx_hoofs/CMakeLists.txt b/iceoryx_hoofs/CMakeLists.txt index 5e331ff24f..b8a830c807 100644 --- a/iceoryx_hoofs/CMakeLists.txt +++ b/iceoryx_hoofs/CMakeLists.txt @@ -17,7 +17,7 @@ cmake_minimum_required(VERSION 3.16) -set(IOX_VERSION_STRING "2.0.2") +set(IOX_VERSION_STRING "2.0.3") project(iceoryx_hoofs VERSION ${IOX_VERSION_STRING}) diff --git a/iceoryx_hoofs/package.xml b/iceoryx_hoofs/package.xml index 12f3e51e80..5fe69264f6 100644 --- a/iceoryx_hoofs/package.xml +++ b/iceoryx_hoofs/package.xml @@ -2,7 +2,7 @@ iceoryx_hoofs - 2.0.2 + 2.0.3 Eclipse iceoryx inter-process-communication (IPC) middleware basic building blocks Eclipse Foundation, Inc. Apache 2.0 diff --git a/iceoryx_integrationtest/package.xml b/iceoryx_integrationtest/package.xml index 5942353456..bcdf9c68cc 100644 --- a/iceoryx_integrationtest/package.xml +++ b/iceoryx_integrationtest/package.xml @@ -2,7 +2,7 @@ iceoryx_integrationtest - 2.0.2 + 2.0.3 iceoryx Software Integrationtest Eclipse Foundation, Inc. Apache 2.0 diff --git a/iceoryx_posh/CMakeLists.txt b/iceoryx_posh/CMakeLists.txt index aa1f007978..02c9235267 100644 --- a/iceoryx_posh/CMakeLists.txt +++ b/iceoryx_posh/CMakeLists.txt @@ -16,7 +16,7 @@ # SPDX-License-Identifier: Apache-2.0 cmake_minimum_required(VERSION 3.16) -set(IOX_VERSION_STRING "2.0.2") +set(IOX_VERSION_STRING "2.0.3") project(iceoryx_posh VERSION ${IOX_VERSION_STRING}) diff --git a/iceoryx_posh/package.xml b/iceoryx_posh/package.xml index da7352163d..faa6f2ab2b 100644 --- a/iceoryx_posh/package.xml +++ b/iceoryx_posh/package.xml @@ -2,7 +2,7 @@ iceoryx_posh - 2.0.2 + 2.0.3 Eclipse iceoryx inter-process-communication (IPC) middleware Posix Shared Memory Library and middleware daemon (RouDi) Eclipse Foundation, Inc. Apache 2.0 diff --git a/tools/introspection/CMakeLists.txt b/tools/introspection/CMakeLists.txt index bc4e6cfb1b..9d4c946049 100644 --- a/tools/introspection/CMakeLists.txt +++ b/tools/introspection/CMakeLists.txt @@ -17,7 +17,7 @@ cmake_minimum_required(VERSION 3.16) -set(IOX_VERSION_STRING "2.0.2") +set(IOX_VERSION_STRING "2.0.3") project(iceoryx_introspection VERSION ${IOX_VERSION_STRING}) From 23f9314b1b0c21d4fc91d16bd0dfff04cead7cbb Mon Sep 17 00:00:00 2001 From: Simon Hoinkis Date: Tue, 24 Jan 2023 22:28:55 +0100 Subject: [PATCH 18/22] iox-#1855 Check state condition and notify if 'true' when attaching states to the WaitSet --- .../include/iceoryx_posh/internal/popo/wait_set.inl | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/iceoryx_posh/include/iceoryx_posh/internal/popo/wait_set.inl b/iceoryx_posh/include/iceoryx_posh/internal/popo/wait_set.inl index 4c6f8055fa..bf7843e185 100644 --- a/iceoryx_posh/include/iceoryx_posh/internal/popo/wait_set.inl +++ b/iceoryx_posh/include/iceoryx_posh/internal/popo/wait_set.inl @@ -184,6 +184,12 @@ WaitSet::attachState(T& stateOrigin, stateOrigin, TriggerHandle(*m_conditionVariableDataPtr, {*this, &WaitSet::removeTrigger}, uniqueId), stateType); + + auto& trigger = m_triggerArray[uniqueId]; + if (trigger->isStateConditionSatisfied()) + { + ConditionNotifier(*m_conditionVariableDataPtr, uniqueId).notify(); + } }); } @@ -210,6 +216,12 @@ inline cxx::expected WaitSet::attachState( .and_then([&](auto& uniqueId) { NotificationAttorney::enableState( stateOrigin, TriggerHandle(*m_conditionVariableDataPtr, {*this, &WaitSet::removeTrigger}, uniqueId)); + + auto& trigger = m_triggerArray[uniqueId]; + if (trigger->isStateConditionSatisfied()) + { + ConditionNotifier(*m_conditionVariableDataPtr, uniqueId).notify(); + } }); } From 03a25e454588d6b8a6e320a19e1969c56a41eaa6 Mon Sep 17 00:00:00 2001 From: Simon Hoinkis Date: Tue, 24 Jan 2023 22:29:36 +0100 Subject: [PATCH 19/22] iox-#1855 Add tests for state condition check on 'WaitSet::attachState' --- .../test/moduletests/test_popo_waitset.cpp | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/iceoryx_posh/test/moduletests/test_popo_waitset.cpp b/iceoryx_posh/test/moduletests/test_popo_waitset.cpp index 31d8760f3c..2018b023ad 100644 --- a/iceoryx_posh/test/moduletests/test_popo_waitset.cpp +++ b/iceoryx_posh/test/moduletests/test_popo_waitset.cpp @@ -1532,4 +1532,30 @@ TEST_F(WaitSet_test, TimedWaitUnblocksAfterMarkForDestructionCall) t.join(); } +TEST_F(WaitSet_test, WaitSetReturnsIfStateTriggeredBeforeAttachingWithEventType) +{ + ::testing::Test::RecordProperty("TEST_ID", "407dc160-a50c-45b3-84bc-92a5f186fc14"); + m_simpleEvents[0U].m_autoResetTrigger = false; + m_simpleEvents[0U].trigger(); + + ASSERT_FALSE(m_sut->attachState(m_simpleEvents[0U], SimpleState1::STATE1).has_error()); + + auto triggerVector = m_sut->timedWait(iox::units::Duration::fromSeconds(1337)); + ASSERT_THAT(triggerVector.size(), Eq(1U)); + EXPECT_TRUE(triggerVector[0U]->doesOriginateFrom(&m_simpleEvents[0U])); +} + +TEST_F(WaitSet_test, WaitSetReturnsIfStateTriggeredBeforeAttachingWithEventId) +{ + ::testing::Test::RecordProperty("TEST_ID", "5753de85-7b34-4024-bd50-938c8885d269"); + m_simpleEvents[0U].m_autoResetTrigger = false; + m_simpleEvents[0U].trigger(); + + ASSERT_FALSE(m_sut->attachState(m_simpleEvents[0U], 0U).has_error()); + + auto triggerVector = m_sut->timedWait(iox::units::Duration::fromSeconds(1337)); + ASSERT_THAT(triggerVector.size(), Eq(1U)); + EXPECT_TRUE(triggerVector[0U]->doesOriginateFrom(&m_simpleEvents[0U])); +} + } // namespace From 5eb218b2ec0acc7d81f3910367518ecbeadc47a1 Mon Sep 17 00:00:00 2001 From: Simon Hoinkis Date: Wed, 25 Jan 2023 12:08:20 +0100 Subject: [PATCH 20/22] iox-#1855 Add test cases for scenario where we 'WaitSet::wait' for a 2nd time Signed-off-by: Simon Hoinkis --- .../test/moduletests/test_popo_waitset.cpp | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/iceoryx_posh/test/moduletests/test_popo_waitset.cpp b/iceoryx_posh/test/moduletests/test_popo_waitset.cpp index 2018b023ad..113e2f1dbb 100644 --- a/iceoryx_posh/test/moduletests/test_popo_waitset.cpp +++ b/iceoryx_posh/test/moduletests/test_popo_waitset.cpp @@ -1558,4 +1558,41 @@ TEST_F(WaitSet_test, WaitSetReturnsIfStateTriggeredBeforeAttachingWithEventId) EXPECT_TRUE(triggerVector[0U]->doesOriginateFrom(&m_simpleEvents[0U])); } +TEST_F(WaitSet_test, WaitSetReturnsAgainIfStateTriggeredBeforeAttachingWithEventType) +{ + ::testing::Test::RecordProperty("TEST_ID", "c86d2592-e8e5-4acc-b468-0a82be82fe7c"); + m_simpleEvents[0U].m_autoResetTrigger = false; + m_simpleEvents[0U].trigger(); + + ASSERT_FALSE(m_sut->attachState(m_simpleEvents[0U], SimpleState1::STATE1).has_error()); + + auto triggerVector1 = m_sut->timedWait(iox::units::Duration::fromSeconds(1337)); + ASSERT_THAT(triggerVector1.size(), Eq(1U)); + EXPECT_TRUE(triggerVector1[0U]->doesOriginateFrom(&m_simpleEvents[0U])); + + // Waiting for another time should lead to the same result + auto triggerVector2 = m_sut->timedWait(iox::units::Duration::fromSeconds(1337)); + ASSERT_THAT(triggerVector2.size(), Eq(1U)); + EXPECT_TRUE(triggerVector2[0U]->doesOriginateFrom(&m_simpleEvents[0U])); +} + +TEST_F(WaitSet_test, WaitSetReturnsAgainIfStateTriggeredBeforeAttachingWithEventId) +{ + ::testing::Test::RecordProperty("TEST_ID", "b07c9e09-f497-4bfa-9403-633d15363f5e"); + m_simpleEvents[0U].m_autoResetTrigger = false; + m_simpleEvents[0U].trigger(); + + ASSERT_FALSE(m_sut->attachState(m_simpleEvents[0U], 0U).has_error()); + + auto triggerVector1 = m_sut->timedWait(iox::units::Duration::fromSeconds(1337)); + ASSERT_THAT(triggerVector1.size(), Eq(1U)); + EXPECT_TRUE(triggerVector1[0U]->doesOriginateFrom(&m_simpleEvents[0U])); + + // Waiting for another time should lead to the same result + auto triggerVector2 = m_sut->timedWait(iox::units::Duration::fromSeconds(1337)); + ASSERT_THAT(triggerVector2.size(), Eq(1U)); + EXPECT_TRUE(triggerVector2[0U]->doesOriginateFrom(&m_simpleEvents[0U])); +} + + } // namespace From 68cde558c2a9f7f7d209c58e2245ead1e4147bc2 Mon Sep 17 00:00:00 2001 From: Simon Hoinkis Date: Wed, 25 Jan 2023 15:43:54 +0100 Subject: [PATCH 21/22] iox-#1504 Update release note with the entry about 'WaitSet::wait' returning Signed-off-by: Simon Hoinkis --- doc/website/release-notes/iceoryx-v2-0-3.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/website/release-notes/iceoryx-v2-0-3.md b/doc/website/release-notes/iceoryx-v2-0-3.md index b1a867f3c8..1522ad6f81 100644 --- a/doc/website/release-notes/iceoryx-v2-0-3.md +++ b/doc/website/release-notes/iceoryx-v2-0-3.md @@ -10,3 +10,4 @@ - Fix FileLock leak when lock failed [\#1440](https://github.com/eclipse-iceoryx/iceoryx/issues/1440) - Fix INTERFACE_INCLUDE_DIRECTORIES in CMake [\#1481](https://github.com/eclipse-iceoryx/iceoryx/issues/1481) - `m_originId` in `mepoo::ChunkHeader` sometimes not set [\#1668](https://github.com/eclipse-iceoryx/iceoryx/issues/1668) +- `WaitSet::wait` returns if data was send before `WaitSet::attachState(.., State::HAS_{DATA, REQUEST, RESPONSE})` [\#1855](https://github.com/eclipse-iceoryx/iceoryx/issues/1855) From 896be65453d111bd9023051251caa65a6c7ba0fb Mon Sep 17 00:00:00 2001 From: Simon Hoinkis Date: Wed, 25 Jan 2023 15:50:41 +0100 Subject: [PATCH 22/22] iox-#1504 Fix clang-tidy parsing error in 'WaitSet' Signed-off-by: Simon Hoinkis --- iceoryx_posh/include/iceoryx_posh/internal/popo/wait_set.inl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/iceoryx_posh/include/iceoryx_posh/internal/popo/wait_set.inl b/iceoryx_posh/include/iceoryx_posh/internal/popo/wait_set.inl index bf7843e185..1e01fc7084 100644 --- a/iceoryx_posh/include/iceoryx_posh/internal/popo/wait_set.inl +++ b/iceoryx_posh/include/iceoryx_posh/internal/popo/wait_set.inl @@ -17,6 +17,8 @@ #ifndef IOX_POSH_POPO_WAIT_SET_INL #define IOX_POSH_POPO_WAIT_SET_INL +#include "iceoryx_posh/popo/wait_set.hpp" + namespace iox { namespace popo