Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
9ea9193
fix shutdown of offer_test_service
donatellob Aug 25, 2025
2aadae8
fix test suspend_resume_test_initial
donatellob Aug 25, 2025
6b5e7e2
fix/document debounce_filter_test scripts
Aug 25, 2025
cdb991b
fix/document cyclic_event_tests scripts
Aug 25, 2025
80e7c4e
fix/document debounce_callback_test scripts
Aug 25, 2025
1420259
doc/fix debounce_frequency_test
Aug 25, 2025
e3d2ab8
document offer_test_local memcheck test
Aug 25, 2025
37ad127
reduce time spent in test_restart_client_in_loop
Aug 26, 2025
23bb69f
endpoint: fix get_local_port, remove set_local_port
Aug 26, 2025
3d654d0
usei, unit tests
Oct 23, 2025
bc66e12
build: cleanup ifdef ANDROID
Aug 27, 2025
e8b04f7
flaky test, debounce_filter_test
donatellob Aug 28, 2025
c5fcfc0
lsei: minor log improvement
Aug 28, 2025
0a5e8da
increase test output size
Aug 28, 2025
ca9122b
lsei: fix race
Aug 29, 2025
687370f
Adds vsomeip version to the cmake log
Aug 29, 2025
5b60055
Adds remote information to client endpoint warning logs
Aug 29, 2025
ef38b86
add fair-sched to valgrind
Aug 29, 2025
fa04537
Enable usei_tests/ut_basic_tests with boost 1.87+
lutzbichler Sep 1, 2025
1a2e10f
Force remote subscriptions to be removed on host error
Sep 1, 2025
b8ba927
fix offer_stop_offer_test scripts
Sep 1, 2025
615b199
fix and document event_test
Sep 1, 2025
cbb5362
ltcei: fix connect logic
Sep 2, 2025
12f6b2c
Add support for VSOMEIP_ABORT_ON_CRIT_SYSCALL_ERROR
Sep 2, 2025
777c168
misc: remove use of strerror
Sep 2, 2025
6f8b867
misc: react on EBADF for epoll_wait
Sep 2, 2025
ab4d268
tests: fix flaky test allow_reconnects
Sep 2, 2025
5e762cf
Create multicast group test
Sep 2, 2025
934be1a
fix race condition with on_message_received_unlocked
Oct 23, 2025
3b29736
Remove leftover configurations
Sep 3, 2025
e118b7b
Avoid locking in and improve performance of the logger
Sep 4, 2025
5b524ed
Change tcp_tw_reuse to 2
Sep 4, 2025
98a530c
flaky, subscribe_notify_test_one_event_two_eventgroups_tcp
donatellob Sep 8, 2025
c0efcc1
remove dlt
Sep 8, 2025
e9429c5
Minor change, typo when declaring endianness structure
Sep 8, 2025
0768dd3
Expand logs to trace connections easier
Sep 8, 2025
b462dfa
multicast, add repeat delay
donatellob Sep 8, 2025
f92131f
misc: fix use of non-asio error codes
Sep 8, 2025
b8e6b34
rmc: remove sender start on rmc::init
Sep 9, 2025
5f4a33b
Ensure socket closure on dtor
Sep 10, 2025
35b9b2c
tce: Remove duplicate shutdown closure of sockets
Sep 10, 2025
e811ac8
Update local_endpoint ClientID on add_guest
Sep 10, 2025
6cb6309
Make compile with GCC < 10 again
Sep 10, 2025
88dc74b
misc: fix client-side-logging crash
Sep 12, 2025
301a0c4
Mark all normal log messages as public
Sep 14, 2025
168d7f9
add SO_REUSEPORT option + logging
donatellob Sep 16, 2025
a779d5d
vSomeip-Lib 3.5.9 Release
Sep 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 4 additions & 3 deletions Android.bp
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ cc_library_shared {

cflags: [
"-DWITHOUT_SYSTEMD",
"-DVSOMEIP_VERSION=\"3.5.8\"",
"-DVSOMEIP_COMPAT_VERSION=\"3.5.8\"",
"-DVSOMEIP_VERSION=\"3.5.9\"",
"-DVSOMEIP_COMPAT_VERSION=\"3.5.9\"",
"-DVSOMEIP_BASE_PATH=\"/vendor/run/someip/\"",
"-DUSE_DLT",
],
Expand All @@ -93,7 +93,8 @@ cc_library_shared {
"-Wl,-wrap,recvfrom",
"-Wl,-wrap,recvmsg",
"-Wl,-wrap,sendto",
"-Wl,-wrap,sendmsg"
"-Wl,-wrap,sendmsg",
"-Wl,-wrap,epoll_wait"
],

rtti: true,
Expand Down
10 changes: 6 additions & 4 deletions Android.mk
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ LOCAL_CFLAGS := \
-frtti \
-fexceptions \
-DWITHOUT_SYSTEMD \
-DVSOMEIP_VERSION=\"3.5.8\" \
-DVSOMEIP_VERSION=\"3.5.9\" \
-DVSOMEIP_BASE_PATH=\"/vendor/run/someip/\" \
-Wno-unused-parameter \
-Wno-non-virtual-dtor \
Expand All @@ -126,6 +126,7 @@ LOCAL_LDFLAGS := \
-Wl,-wrap,recvmsg \
-Wl,-wrap,sendto \
-Wl,-wrap,sendmsg \
-Wl,-wrap,epoll_wait \

include $(BUILD_SHARED_LIBRARY)

Expand Down Expand Up @@ -159,7 +160,7 @@ LOCAL_CFLAGS := \
-frtti \
-fexceptions \
-DWITHOUT_SYSTEMD \
-DVSOMEIP_VERSION=\"3.5.8\" \
-DVSOMEIP_VERSION=\"3.5.9\" \
-DVSOMEIP_BASE_PATH=\"/vendor/run/someip/\" \
-Wno-unused-parameter \
-Wno-non-virtual-dtor \
Expand Down Expand Up @@ -206,8 +207,8 @@ LOCAL_CFLAGS := \
-frtti \
-fexceptions \
-DWITHOUT_SYSTEMD \
-DVSOMEIP_VERSION=\"3.5.8\" \
-DVSOMEIP_COMPAT_VERSION=\"3.5.8\" \
-DVSOMEIP_VERSION=\"3.5.9\" \
-DVSOMEIP_COMPAT_VERSION=\"3.5.9\" \
-DVSOMEIP_BASE_PATH=\"/vendor/run/someip/\" \
-Wno-unused-parameter \
-Wno-non-virtual-dtor \
Expand All @@ -229,5 +230,6 @@ LOCAL_CFLAGS := \
-Wl,-wrap,recvmsg \
-Wl,-wrap,sendto \
-Wl,-wrap,sendmsg \
-Wl,-wrap,epoll_wait \

include $(BUILD_SHARED_LIBRARY)
53 changes: 53 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,5 +1,58 @@
Changes
=======
v3.5.9
- global
- Add vsomeip version to cmake log
- Add support for VSOMEIP_ABORT_ON_CRIT_SYSCALL_ERROR
- Remove use of strerror
- React on Bad File Descriptor (EOBADF) for epoll_wait
- Remove leftover configurations
- Improve logger performance, turn it almost lock-free
- Fix use of boost non-asio error codes
- Fix compile with GCC < 10 again
- Mark all DLT log messages as public

- tests
- network tests
- Fix and/or document debounce_callback_test,
cyclic_event_tests, debounce_filter_test,
suspend_resume_test_initial, event_test,
offer_stop_offer_test, allow_reconnects,
subscribe_notify_test_one_event_two_eventgroups_tcp,
offer_test_local, debounce_frequency_test,
test_restart_client_in_loop, offer_test_service
- Create multicast group test

- unit tests
- Created udp_server_endpoint_impl unit tests
- Fix unit tests with boost 1.87+

- endpoint
- Fix get_local_port, remove set_local_port
- Fix multicast leave, add repeat delay
- Ensure socket closure on dtor
- Remove duplicate shutdown closure of sockets
- Add SO_REUSEPORT option to mitigate Address already used issues

- local communication
- Fix race condition on accept_cbk
- Improve logs
- Fix client connect logic due to netlink removal

- external communication
- Fix race condition usei with on_message_received_unlocked
- Remove duplicate shutdown closure of sockets on tcp_client_endpoint_impl

- routing
- Remove remote subscription on connection lost towards host

- routing manager client
- Remove sender start on init
- Fix client-side-logging crash

- android
- Cleanup ifdef ANDROID

v3.5.8
- android
- Possibility to build vsomeip with android NDK
Expand Down
11 changes: 8 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,13 @@ set (VSOMEIP_COMPAT_NAME vsomeip)

set (VSOMEIP_MAJOR_VERSION 3)
set (VSOMEIP_MINOR_VERSION 5)
set (VSOMEIP_PATCH_VERSION 8)
set (VSOMEIP_PATCH_VERSION 9)
set (VSOMEIP_HOTFIX_VERSION 0)

set (VSOMEIP_VERSION ${VSOMEIP_MAJOR_VERSION}.${VSOMEIP_MINOR_VERSION}.${VSOMEIP_PATCH_VERSION})

message (STATUS " Building vSomeip-Lib v${VSOMEIP_VERSION}.${VSOMEIP_HOTFIX_VERSION}")

set (PACKAGE_VERSION ${VSOMEIP_VERSION}) # Used in documentation/doxygen.in
set (CMAKE_VERBOSE_MAKEFILE off)

Expand Down Expand Up @@ -140,7 +143,9 @@ if (NOT MSVC)
find_program(VALGRIND "valgrind")
if (VALGRIND)
if (DEFINED VALGRIND_TYPE AND NOT VALGRIND_TYPE STREQUAL "")
set(TEST_ENTRYPOINT ${VALGRIND} --tool=${VALGRIND_TYPE} --trace-children=yes)
# The --fair-sched option controls the locking mechanism used by Valgrind to serialise thread execution.
# The locking mechanism controls the way the threads are scheduled, and different settings give different trade-offs between fairness and performance.
set(TEST_ENTRYPOINT ${VALGRIND} --tool=${VALGRIND_TYPE} --trace-children=yes --fair-sched=yes)
add_definitions(-DBOOST_USE_VALGRIND)
endif ()

Expand Down Expand Up @@ -334,7 +339,7 @@ else ()
set_target_properties(${VSOMEIP_NAME} PROPERTIES LINK_FLAGS "-Wl,-wrap,socket -Wl,-wrap,accept -Wl,-wrap,open")
else ()
# add syscall wrappers to deal with CLOEXEC + react on BADFD
set_target_properties(${VSOMEIP_NAME} PROPERTIES LINK_FLAGS "-Wl,-wrap,socket -Wl,-wrap,accept -Wl,-wrap,open -Wl,-wrap,close -Wl,-wrap,recvfrom -Wl,-wrap,recvmsg -Wl,-wrap,sendto -Wl,-wrap,sendmsg")
set_target_properties(${VSOMEIP_NAME} PROPERTIES LINK_FLAGS "-Wl,-wrap,socket -Wl,-wrap,accept -Wl,-wrap,open -Wl,-wrap,close -Wl,-wrap,recvfrom -Wl,-wrap,recvmsg -Wl,-wrap,sendto -Wl,-wrap,sendmsg -Wl,-wrap,epoll_wait")
endif ()
endif ()
target_include_directories(${VSOMEIP_NAME} INTERFACE
Expand Down
4 changes: 4 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@
"generator": "Ninja",
"binaryDir": "/home/build",
"cacheVariables": {
"DISABLE_DLT": {
"type": "BOOL",
"value": "ON"
},
"CMAKE_CXX_FLAGS_INIT": {
"type": "STRING",
"value": "--coverage -Wno-error=tsan -fprofile-update=atomic"
Expand Down
15 changes: 3 additions & 12 deletions documentation/network-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,7 @@ This page will guide you to accomplish that goal.

## Main steps

1. Clone dlt-daemon to the same Project folder as vsomeip.

```bash
git clone https://github.com/COVESA/dlt-daemon.git

$ ls
dlt-daemon vsomeip
```

2. Set the sanitizer or valgrind type you'd like to use (use sanitizer LEAK if you don't know or care which one gets used)
1. Set the sanitizer or valgrind type you'd like to use (use sanitizer LEAK if you don't know or care which one gets used)

**Syntax sanitizers**

Expand Down Expand Up @@ -77,13 +68,13 @@ This page will guide you to accomplish that goal.
export VALGRIND_TYPE=memcheck
```

3. Create the containers (you must be inside the vsomeip repo to run this step). This will first build the Docker image used by both that contains everything needed to build and run the network-tests (CMake, GCC, Boost, etc.)
2. Create the containers (you must be inside the vsomeip repo to run this step). This will first build the Docker image used by both that contains everything needed to build and run the network-tests (CMake, GCC, Boost, etc.)

```bash
docker compose --project-directory zuul/network-tests build
```

4. Start the containers (same as above, you must be inside the repo directory). This will build vsomeip-lib and then run the network-tests
3. Start the containers (same as above, you must be inside the repo directory). This will build vsomeip-lib and then run the network-tests

```bash
docker compose --project-directory zuul/network-tests up
Expand Down
2 changes: 2 additions & 0 deletions documentation/vsomeipConfiguration.md
Original file line number Diff line number Diff line change
Expand Up @@ -1816,6 +1816,8 @@ To enable service-specific logs, provide a space- or colon-separated list of Ser

- **VSOMEIP_LOAD_PLUGINS** - Used to load external plugins.

- **VSOMEIP_ABORT_ON_CRIT_SYSCALL_ERROR** - Used to abort when incorrect state (e.g. errno EBADF) is detected for critical syscall/libc calls such as recvfrom/sendto/epoll_wait. Under these situations, the process using libvsomeip is incorrectly handling file descriptors (e.g. double close with invalid fd value) leading to a libvsomeip state that is incorrect and not recoverable. The abort will cause a core dump and platforms can decide on recovery strategies (e.g. restarting service). Any non-empty value is considered true.

<details><summary>Using environment variables</summary>

In the following example the application `my_vsomeip_application` is started.
Expand Down
5 changes: 3 additions & 2 deletions examples/routingmanagerd/routingmanagerd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,9 @@ int routingmanagerd_process(bool _is_quiet) {
return -1;
}

// Create the application object
// Create the application object, and initialize it before sighandler thread starts
its_application = its_runtime->create_application("routingmanagerd");
auto its_app_initialized = its_application->init();
#ifndef VSOMEIP_ENABLE_SIGNAL_HANDLING
std::thread sighandler_thread([]() {
// Unblock signals for this thread only
Expand Down Expand Up @@ -112,7 +113,7 @@ int routingmanagerd_process(bool _is_quiet) {
}
});
#endif
if (its_application->init()) {
if (its_app_initialized) {
if (its_application->is_routing()) {
its_application->start();
#ifndef VSOMEIP_ENABLE_SIGNAL_HANDLING
Expand Down
3 changes: 0 additions & 3 deletions implementation/configuration/include/configuration_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,6 @@ class configuration_impl : public configuration, public std::enable_shared_from_
std::set<std::pair<port_t, port_t>> load_routing_guest_port_range(const boost::property_tree::ptree& _tree) const;

bool load_routing_credentials(const configuration_element& _element); // compatibility
void load_routing_client_ports(const configuration_element& _element); // compatibility

void load_tracing(const configuration_element& _element);
void load_trace_channels(const boost::property_tree::ptree& _tree);
Expand Down Expand Up @@ -340,11 +339,9 @@ class configuration_impl : public configuration, public std::enable_shared_from_
void load_shutdown_timeout(const configuration_element& _element);

void load_service_discovery(const configuration_element& _element);
void load_delays(const boost::property_tree::ptree& _tree);

void load_npdu_default_timings(const configuration_element& _element);
void load_services(const configuration_element& _element);
void load_servicegroup(const boost::property_tree::ptree& _tree);
void load_service(const boost::property_tree::ptree& _tree, const std::string& _unicast_address);
void load_event(std::shared_ptr<service>& _service, const boost::property_tree::ptree& _tree);
void load_eventgroup(std::shared_ptr<service>& _service, const boost::property_tree::ptree& _tree);
Expand Down
3 changes: 2 additions & 1 deletion implementation/configuration/include/internal.hpp.in
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#define VSOMEIP_ENV_MANDATORY_CONFIGURATION_FILES "VSOMEIP_MANDATORY_CONFIGURATION_FILES"
#define VSOMEIP_ENV_LOAD_PLUGINS "VSOMEIP_LOAD_PLUGINS"
#define VSOMEIP_ENV_CLIENTSIDELOGGING "VSOMEIP_CLIENTSIDELOGGING"
#define VSOMEIP_ENV_ABORT_ON_CRIT_SYSCALL_ERROR "VSOMEIP_ABORT_ON_CRIT_SYSCALL_ERROR"

#define VSOMEIP_DEFAULT_CONFIGURATION_FILE "@DEFAULT_CONFIGURATION_FILE@"
#define VSOMEIP_LOCAL_CONFIGURATION_FILE "./vsomeip.json"
Expand Down Expand Up @@ -145,7 +146,7 @@
#define MAX_ENDPOINT_WAIT_INTERVAL 160
#define SUM_ENDPOINT_WAIT_INTERVAL 500

#if defined(__linux__) || defined(ANDROID) || defined(__QNX__)
#if defined(__linux__) || defined(__QNX__)
#include <pthread.h>
#endif

Expand Down
1 change: 1 addition & 0 deletions implementation/configuration/include/internal_android.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#define VSOMEIP_ENV_MANDATORY_CONFIGURATION_FILES "VSOMEIP_MANDATORY_CONFIGURATION_FILES"
#define VSOMEIP_ENV_LOAD_PLUGINS "VSOMEIP_LOAD_PLUGINS"
#define VSOMEIP_ENV_CLIENTSIDELOGGING "VSOMEIP_CLIENTSIDELOGGING"
#define VSOMEIP_ENV_ABORT_ON_CRIT_SYSCALL_ERROR "VSOMEIP_ABORT_ON_CRIT_SYSCALL_ERROR"

#define VSOMEIP_DEFAULT_CONFIGURATION_FILE "/vendor/run/etc/vsomeip.json"
#define VSOMEIP_LOCAL_CONFIGURATION_FILE "./vsomeip.json"
Expand Down
3 changes: 0 additions & 3 deletions implementation/configuration/include/service.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@ struct service {
uint16_t reliable_;
uint16_t unreliable_;

std::string multicast_address_;
uint16_t multicast_port_;

std::string protocol_;

// [0] = debounce_time
Expand Down
Loading
Loading