Skip to content

Commit 40ef24e

Browse files
Merge pull request #1505 from eclipse-iceoryx/integration-release-2-0-3
iox-#1504 Integration branch for iceoryx v2.0.3 release
2 parents f756b7c + 896be65 commit 40ef24e

File tree

23 files changed

+158
-95
lines changed

23 files changed

+158
-95
lines changed

.github/workflows/build-test.yml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
push:
88
branches: [ master ]
99
pull_request:
10-
branches: [ master, release* ]
10+
branches: [ master, release*, integration* ]
1111

1212
jobs:
1313
pre-flight-check:
@@ -35,19 +35,22 @@ jobs:
3535
# prevent stuck jobs consuming macos runners for 6 hours
3636
timeout-minutes: 60
3737
needs: pre-flight-check
38-
runs-on: macos-10.15
38+
runs-on: macos-12
3939
steps:
4040
- uses: actions/checkout@v2
4141
with:
4242
ref: 'master'
4343
- name: Unix (FreeBSD) test
4444
id: Test
45-
uses: vmactions/freebsd-vm@v0.1.6
45+
uses: vmactions/freebsd-vm@v0
4646
with:
4747
usesh: true
48-
mem: 2048
48+
copyback: false
49+
mem: 4096
4950
prepare: pkg install -y cmake git ncurses bash wget bison
50-
run: ./tools/ci/build-test-freebsd.sh
51+
run: |
52+
git config --global --add safe.directory /Users/runner/work/iceoryx/iceoryx
53+
./tools/ci/build-test-freebsd.sh
5154
5255
build-test-windows:
5356
runs-on: windows-2019

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.2
1+
2.0.3

cmake/package/package.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
#
1515
# SPDX-License-Identifier: Apache-2.0
1616
cmake_minimum_required(VERSION 3.16)
17-
set(IOX_VERSION_STRING "2.0.2")
17+
set(IOX_VERSION_STRING "2.0.3")
1818

1919
project(iceoryx_package VERSION ${IOX_VERSION_STRING})
2020

doc/aspice_swe3_4/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
cmake_minimum_required(VERSION 3.16)
1818

19-
set(IOX_VERSION_STRING "2.0.2")
19+
set(IOX_VERSION_STRING "2.0.3")
2020

2121
project(iceoryx_doc VERSION ${IOX_VERSION_STRING})
2222

doc/aspice_swe3_4/example/iceoryx_component/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ find_package(iceoryx_hoofs REQUIRED)
2121

2222
include(IceoryxPlatform)
2323

24+
set(PREFIX iceoryx/v${CMAKE_PROJECT_VERSION})
25+
2426
#
2527
########## lib ##########
2628
#
@@ -84,7 +86,7 @@ target_include_directories(${PROJECT_PREFIX}_moduletests PRIVATE . source/exampl
8486
# TODO: fix conversion warnings
8587
target_compile_options(${PROJECT_PREFIX}_moduletests PRIVATE ${TEST_CXX_FLAGS})
8688
target_link_libraries(${PROJECT_PREFIX}_moduletests ${TEST_LINK_LIBS})
87-
set_target_properties(${PROJECT_PREFIX}_moduletests PROPERTIES
89+
set_target_properties(${PROJECT_PREFIX}_moduletests PROPERTIES
8890
CXX_STANDARD_REQUIRED ON
8991
CXX_STANDARD ${ICEORYX_CXX_STANDARD}
9092
POSITION_INDEPENDENT_CODE ON

doc/website/release-notes/.pages

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
nav:
2+
- iceoryx-v2-0-3.md
23
- iceoryx-v2-0-2.md
34
- iceoryx-v2-0-1.md
45
- iceoryx-v2-0-0.md
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# iceoryx v2.0.3
2+
3+
## [v2.0.3](https://github.com/eclipse-iceoryx/iceoryx/tree/v2.0.2) (tbd)
4+
5+
[Full Changelog](https://github.com/eclipse-iceoryx/iceoryx/compare/v2.0.2...v2.0.3)
6+
7+
**Bugfixes:**
8+
9+
- Build error on certain versions of Windows/Visual Studio [\#1476](https://github.com/eclipse-iceoryx/iceoryx/issues/1476)
10+
- Fix FileLock leak when lock failed [\#1440](https://github.com/eclipse-iceoryx/iceoryx/issues/1440)
11+
- Fix INTERFACE_INCLUDE_DIRECTORIES in CMake [\#1481](https://github.com/eclipse-iceoryx/iceoryx/issues/1481)
12+
- `m_originId` in `mepoo::ChunkHeader` sometimes not set [\#1668](https://github.com/eclipse-iceoryx/iceoryx/issues/1668)
13+
- `WaitSet::wait` returns if data was send before `WaitSet::attachState(.., State::HAS_{DATA, REQUEST, RESPONSE})` [\#1855](https://github.com/eclipse-iceoryx/iceoryx/issues/1855)

iceoryx_binding_c/CMakeLists.txt

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# SPDX-License-Identifier: Apache-2.0
1717
cmake_minimum_required(VERSION 3.16)
1818

19-
set(IOX_VERSION_STRING "2.0.2")
19+
set(IOX_VERSION_STRING "2.0.3")
2020

2121

2222

@@ -34,20 +34,7 @@ if(CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME MATCHES Darwin)
3434
option(BUILD_SHARED_LIBS "Create shared libraries by default" ON)
3535
endif()
3636

37-
option(MAKE_UNIQUE_INCLUDEDIR
38-
"When ON headers are installed to a path ending with folders called \
39-
iceoryx/vX.Y.Z/ . This avoids include directory search order issues when \
40-
overriding this package from a merged catkin, ament, or colcon workspace."
41-
ON)
42-
43-
if(MAKE_UNIQUE_INCLUDEDIR)
44-
set(_unique_dir "iceoryx/v${IOX_VERSION_STRING}")
45-
if(PREFIX STREQUAL "")
46-
set(PREFIX "${_unique_dir}")
47-
else()
48-
set(PREFIX "${PREFIX}/${_unique_dir}")
49-
endif()
50-
endif()
37+
set(PREFIX iceoryx/v${CMAKE_PROJECT_VERSION})
5138

5239
#
5340
########## set variables for export ##########

iceoryx_binding_c/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
33
<package format="3">
44
<name>iceoryx_binding_c</name>
5-
<version>2.0.2</version>
5+
<version>2.0.3</version>
66
<description>Eclipse iceoryx inter-process-communication (IPC) middleware C-Language Binding</description>
77
<maintainer email="iceoryx-oss-support@apex.ai">Eclipse Foundation, Inc.</maintainer>
88
<license>Apache 2.0</license>

iceoryx_dds/CMakeLists.txt

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# SPDX-License-Identifier: Apache-2.0
1717
cmake_minimum_required(VERSION 3.16)
1818

19-
set(IOX_VERSION_STRING "2.0.2")
19+
set(IOX_VERSION_STRING "2.0.3")
2020

2121
project(iceoryx_dds VERSION ${IOX_VERSION_STRING})
2222

@@ -32,20 +32,7 @@ find_package(iceoryx_posh REQUIRED)
3232
include(IceoryxPackageHelper)
3333
include(IceoryxPlatform)
3434

35-
option(MAKE_UNIQUE_INCLUDEDIR
36-
"When ON headers are installed to a path ending with folders called \
37-
iceoryx/vX.Y.Z/ . This avoids include directory search order issues when \
38-
overriding this package from a merged catkin, ament, or colcon workspace."
39-
ON)
40-
41-
if(MAKE_UNIQUE_INCLUDEDIR)
42-
set(_unique_dir "iceoryx/v${IOX_VERSION_STRING}")
43-
if(PREFIX STREQUAL "")
44-
set(PREFIX "${_unique_dir}")
45-
else()
46-
set(PREFIX "${PREFIX}/${_unique_dir}")
47-
endif()
48-
endif()
35+
set(PREFIX iceoryx/v${CMAKE_PROJECT_VERSION})
4936

5037
if(CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME MATCHES Darwin)
5138
option(BUILD_SHARED_LIBS "Create shared libraries by default" ON)

iceoryx_hoofs/CMakeLists.txt

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
cmake_minimum_required(VERSION 3.16)
1919

20-
set(IOX_VERSION_STRING "2.0.2")
20+
set(IOX_VERSION_STRING "2.0.3")
2121

2222
project(iceoryx_hoofs VERSION ${IOX_VERSION_STRING})
2323

@@ -28,20 +28,7 @@ if(CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME MATCHES Darwin)
2828
option(BUILD_SHARED_LIBS "Create shared libraries by default" ON)
2929
endif()
3030

31-
option(MAKE_UNIQUE_INCLUDEDIR
32-
"When ON headers are installed to a path ending with folders called \
33-
iceoryx/vX.Y.Z/ . This avoids include directory search order issues when \
34-
overriding this package from a merged catkin, ament, or colcon workspace."
35-
ON)
36-
37-
if(MAKE_UNIQUE_INCLUDEDIR)
38-
set(_unique_dir "iceoryx/v${IOX_VERSION_STRING}")
39-
if(PREFIX STREQUAL "")
40-
set(PREFIX "${_unique_dir}")
41-
else()
42-
set(PREFIX "${PREFIX}/${_unique_dir}")
43-
endif()
44-
endif()
31+
set(PREFIX iceoryx/v${CMAKE_PROJECT_VERSION})
4532

4633
if(CLANG_TIDY)
4734
find_program(

iceoryx_hoofs/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
33
<package format="3">
44
<name>iceoryx_hoofs</name>
5-
<version>2.0.2</version>
5+
<version>2.0.3</version>
66
<description>Eclipse iceoryx inter-process-communication (IPC) middleware basic building blocks</description>
77
<maintainer email="iceoryx-oss-support@apex.ai">Eclipse Foundation, Inc.</maintainer>
88
<license>Apache 2.0</license>

iceoryx_hoofs/source/posix_wrapper/file_lock.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,15 @@ cxx::expected<FileLockError> FileLock::initializeFileLock() noexcept
6767

6868
if (lockCall.has_error())
6969
{
70-
closeFileDescriptor().or_else([](auto) {
71-
std::cerr << "Unable to close file lock in error related cleanup during initialization." << std::endl;
70+
posixCall(iox_close)(m_fd).failureReturnValue(ERROR_CODE).evaluate().or_else([&](auto& result) {
71+
IOX_DISCARD_RESULT(this->convertErrnoToFileLockError(result.errnum));
72+
std::cerr << "Unable to close the file handle to the file lock \"" << m_fileLockPath << "\"" << std::endl;
7273
});
74+
7375
// possible errors in closeFileDescriptor() are masked and we inform the user about the actual error
7476
return cxx::error<FileLockError>(convertErrnoToFileLockError(lockCall.get_error().errnum));
7577
}
78+
m_isInitialized = true;
7679

7780
return cxx::success<>();
7881
}

iceoryx_integrationtest/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
33
<package format="3">
44
<name>iceoryx_integrationtest</name>
5-
<version>2.0.2</version>
5+
<version>2.0.3</version>
66
<description>iceoryx Software Integrationtest</description>
77
<maintainer email="iceoryx-oss-support@apex.ai">Eclipse Foundation, Inc.</maintainer>
88
<license>Apache 2.0</license>

iceoryx_posh/CMakeLists.txt

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# SPDX-License-Identifier: Apache-2.0
1717
cmake_minimum_required(VERSION 3.16)
1818

19-
set(IOX_VERSION_STRING "2.0.2")
19+
set(IOX_VERSION_STRING "2.0.3")
2020

2121
project(iceoryx_posh VERSION ${IOX_VERSION_STRING})
2222

@@ -44,20 +44,7 @@ if(CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME MATCHES Darwin)
4444
option(BUILD_SHARED_LIBS "Create shared libraries by default" ON)
4545
endif()
4646

47-
option(MAKE_UNIQUE_INCLUDEDIR
48-
"When ON headers are installed to a path ending with folders called \
49-
iceoryx/vX.Y.Z/ . This avoids include directory search order issues when \
50-
overriding this package from a merged catkin, ament, or colcon workspace."
51-
ON)
52-
53-
if(MAKE_UNIQUE_INCLUDEDIR)
54-
set(_unique_dir "iceoryx/v${IOX_VERSION_STRING}")
55-
if(PREFIX STREQUAL "")
56-
set(PREFIX "${_unique_dir}")
57-
else()
58-
set(PREFIX "${PREFIX}/${_unique_dir}")
59-
endif()
60-
endif()
47+
set(PREFIX iceoryx/v${CMAKE_PROJECT_VERSION})
6148

6249
include(cmake/iceoryxversions.cmake)
6350

iceoryx_posh/include/iceoryx_posh/internal/popo/building_blocks/chunk_sender.inl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// Copyright (c) 2020 by Robert Bosch GmbH. All rights reserved.
22
// Copyright (c) 2021 - 2022 by Apex.AI Inc. All rights reserved.
3+
// Copyright (c) 2022 by NXP. All rights reserved.
34
//
45
// Licensed under the Apache License, Version 2.0 (the "License");
56
// you may not use this file except in compliance with the License.
@@ -128,6 +129,7 @@ ChunkSender<ChunkSenderDataType>::tryAllocate(const UniquePortId originId,
128129
auto chunkSize = lastChunkChunkHeader->chunkSize();
129130
lastChunkChunkHeader->~ChunkHeader();
130131
new (lastChunkChunkHeader) mepoo::ChunkHeader(chunkSize, chunkSettings);
132+
lastChunkChunkHeader->setOriginId(originId);
131133
return cxx::success<mepoo::ChunkHeader*>(lastChunkChunkHeader);
132134
}
133135
else

iceoryx_posh/include/iceoryx_posh/internal/popo/wait_set.inl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
#ifndef IOX_POSH_POPO_WAIT_SET_INL
1818
#define IOX_POSH_POPO_WAIT_SET_INL
1919

20+
#include "iceoryx_posh/popo/wait_set.hpp"
21+
2022
namespace iox
2123
{
2224
namespace popo
@@ -184,6 +186,12 @@ WaitSet<Capacity>::attachState(T& stateOrigin,
184186
stateOrigin,
185187
TriggerHandle(*m_conditionVariableDataPtr, {*this, &WaitSet::removeTrigger}, uniqueId),
186188
stateType);
189+
190+
auto& trigger = m_triggerArray[uniqueId];
191+
if (trigger->isStateConditionSatisfied())
192+
{
193+
ConditionNotifier(*m_conditionVariableDataPtr, uniqueId).notify();
194+
}
187195
});
188196
}
189197

@@ -210,6 +218,12 @@ inline cxx::expected<WaitSetError> WaitSet<Capacity>::attachState(
210218
.and_then([&](auto& uniqueId) {
211219
NotificationAttorney::enableState(
212220
stateOrigin, TriggerHandle(*m_conditionVariableDataPtr, {*this, &WaitSet::removeTrigger}, uniqueId));
221+
222+
auto& trigger = m_triggerArray[uniqueId];
223+
if (trigger->isStateConditionSatisfied())
224+
{
225+
ConditionNotifier(*m_conditionVariableDataPtr, uniqueId).notify();
226+
}
213227
});
214228
}
215229

iceoryx_posh/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
33
<package format="3">
44
<name>iceoryx_posh</name>
5-
<version>2.0.2</version>
5+
<version>2.0.3</version>
66
<description>Eclipse iceoryx inter-process-communication (IPC) middleware Posix Shared Memory Library and middleware daemon (RouDi)</description>
77
<maintainer email="iceoryx-oss-support@apex.ai">Eclipse Foundation, Inc.</maintainer>
88
<license>Apache 2.0</license>

iceoryx_posh/source/roudi/process_manager.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ void ProcessManager::evaluateKillError(const Process& process,
183183
{
184184
LogWarn() << "Process ID " << process.getPid() << " named '" << process.getName()
185185
<< "' could not be killed with"
186-
<< (shutdownPolicy == ShutdownPolicy::SIG_KILL ? "SIGKILL" : "SIGTERM") << " for unknown reason: "
186+
<< (shutdownPolicy == ShutdownPolicy::SIG_KILL ? "SIGKILL" : "SIGTERM") << " for unknown reason: '"
187187
<< errorString << "'";
188188
errorHandler(Error::kPOSH__ROUDI_PROCESS_SHUTDOWN_FAILED, nullptr, ErrorLevel::SEVERE);
189189
}

iceoryx_posh/test/integrationtests/test_publisher_subscriber_communication.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// Copyright (c) 2021 - 2022 by Apex.AI Inc. All rights reserved.
2+
// Copyright (c) 2022 by NXP. All rights reserved.
23
//
34
// Licensed under the Apache License, Version 2.0 (the "License");
45
// you may not use this file except in compliance with the License.
@@ -711,4 +712,33 @@ TEST_F(PublisherSubscriberCommunication_test, MixedOptionsSetupWorksWithBlocking
711712
EXPECT_THAT(subscriberNonBlocking->take().has_error(), Eq(true));
712713
}
713714

715+
TEST_F(PublisherSubscriberCommunication_test, PublisherUniqueIdMatchesReceivedSample)
716+
{
717+
::testing::Test::RecordProperty("TEST_ID", "decbfcdd-778f-4e18-b6a8-395d400fdd80");
718+
719+
auto publisher = createPublisher<int>();
720+
this->InterOpWait();
721+
auto subscriber = createSubscriber<int>();
722+
this->InterOpWait();
723+
724+
const auto uid = publisher->getUid();
725+
726+
for (int i = 0; i < 10; ++i)
727+
{
728+
ASSERT_FALSE(publisher->loan()
729+
.and_then([&](auto& sample) {
730+
*sample = i;
731+
sample.publish();
732+
})
733+
.has_error());
734+
735+
EXPECT_FALSE(subscriber->take()
736+
.and_then([&](auto& sample) {
737+
EXPECT_THAT(*sample, Eq(i));
738+
EXPECT_THAT(sample.getChunkHeader()->originId(), Eq(uid));
739+
})
740+
.has_error());
741+
}
742+
}
743+
714744
} // namespace

0 commit comments

Comments
 (0)