From e516082c07f98fd88ba4bd27cec9fc2380a24174 Mon Sep 17 00:00:00 2001 From: David Laseca Perez Date: Tue, 22 Sep 2026 14:18:32 +0200 Subject: [PATCH 1/2] Fix default domain value Signed-off-by: David Laseca Perez --- rmw_microxrcedds_c/src/rmw_init.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rmw_microxrcedds_c/src/rmw_init.c b/rmw_microxrcedds_c/src/rmw_init.c index 8d5fd90c..66e30d49 100644 --- a/rmw_microxrcedds_c/src/rmw_init.c +++ b/rmw_microxrcedds_c/src/rmw_init.c @@ -53,7 +53,7 @@ rmw_init_options_init( init_options->implementation_identifier = eprosima_microxrcedds_identifier; init_options->allocator = allocator; init_options->enclave = NULL; - init_options->domain_id = 0; + init_options->domain_id = RMW_DEFAULT_DOMAIN_ID; init_options->security_options = rmw_get_default_security_options(); // This can be call before rmw_init() @@ -216,7 +216,8 @@ rmw_init( RMW_RET_INCORRECT_RMW_IMPLEMENTATION); context->instance_id = options->instance_id; context->implementation_identifier = eprosima_microxrcedds_identifier; - context->actual_domain_id = options->domain_id; + context->actual_domain_id = + (RMW_DEFAULT_DOMAIN_ID == options->domain_id) ? 0u : options->domain_id; #ifdef UCLIENT_PROFILE_MULTITHREAD if (!rmw_uxrce_wait_mutex_initialized) { From ff2fa26f08936ee157c27bdcade901d84ae4d3c8 Mon Sep 17 00:00:00 2001 From: David Laseca Perez Date: Tue, 22 Sep 2026 17:04:31 +0200 Subject: [PATCH 2/2] Clarify clean up order Signed-off-by: David Laseca Perez --- rmw_microxrcedds_c/src/rmw_init.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rmw_microxrcedds_c/src/rmw_init.c b/rmw_microxrcedds_c/src/rmw_init.c index 66e30d49..332d1eda 100644 --- a/rmw_microxrcedds_c/src/rmw_init.c +++ b/rmw_microxrcedds_c/src/rmw_init.c @@ -378,6 +378,9 @@ rmw_context_fini( { rmw_ret_t ret = RMW_RET_OK; + // Safety net against leaks if the app shuts down without destroying its nodes + // Nodes destroyed here make a later rcl_node_fini() return RMW_RET_ERROR, this + // is normally triggered by rclc_support_fini() -> rcl_shutdown() -> rmw_shutdown() rmw_uxrce_mempool_item_t * item = node_memory.allocateditems; while (item != NULL) {