[#22] Bump iceoryx2 submodule to v0.9.1#23
Draft
patdhlk wants to merge 5 commits into
Draft
Conversation
Crosses v0.9.0 (2026-05-18) and v0.9.1 (2026-05-27). Picks up upstream bugfixes for concurrent node creation, docker-container alive detection, write-only shared memory cleanup with root, and the `cleanup_dead_nodes_on_open` / `send_dead_node_signal` interaction; plus the new `AdaptiveWaitBehavior`. The v0.9.0 API breakage that surfaces in this binding is a single constant rename (`IOX2_SERVICE_ID_LENGTH` -> `IOX2_SERVICE_HASH_LENGTH`) and a handful of internal storage-struct size changes; both addressed in the follow-up commits on this branch. The remaining v0.9.0 renames listed in the issue (UnableToDeliverStrategy, DegradationCallback, NodeId, stale-resources cleanup, config field rename, loggers crate rename, libc_platform feature) do not appear on the current P/Invoke surface and require no binding-side change.
…ename Updates the C# P/Invoke surface to match the regenerated cbindgen header for iceoryx2 v0.9.1. Constant rename (v0.9.0 ServiceId -> ServiceHash): IOX2_SERVICE_ID_LENGTH -> IOX2_SERVICE_HASH_LENGTH (value unchanged at 64) Struct rename (v0.9.0 named the server-side request handle separately from the client-side request-mut handle): iox2_request_storage_t -> iox2_active_request_storage_t iox2_request_t -> iox2_active_request_t Storage size updates (uint8_t internal[N]): iox2_port_factory_publisher_builder_storage_t 128 -> 208 iox2_port_factory_client_builder_storage_t 24 -> 256 (also Pack 8 -> 16) iox2_port_factory_server_builder_storage_t 24 -> 256 (also Pack 8 -> 16) iox2_server_storage_t 1248 -> 248 iox2_request_mut_storage_t 64 -> 80 iox2_active_request_storage_t 96 -> 128 iox2_response_mut_storage_t 64 -> 88 iox2_pending_response_storage_t 32 -> 88 Also corrects a stale doc comment: the upstream loggers crate was renamed from `iceoryx2-loggers` to `iceoryx2-bb-loggers` in v0.9.0, so the `--features iceoryx2-loggers/file` hint for rebuilding with file-logger support no longer matches the crate's name.
…to 27 storage structs Mirrors every uint8_t internal[N] storage-struct size from the cbindgen header, not just the two largest ones. The v0.9.1 bump silently drifted six other sizes (publisher/client/server builder, server, request_mut, active_request, response_mut, pending_response) that the previous two-row tripwire would not have caught. Same double-entry bookkeeping convention as before: each constant intentionally duplicates the StructLayout(Size = N) attribute in Iox2NativeMethods.cs so a future maintainer must touch both files.
…dotnet format) CI's `dotnet format --verify-no-changes` step flagged the file: the project's .editorconfig sets `insert_final_newline = false`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Notes for Reviewer
Bumps the bundled
iceoryx2native library from v0.8.1 to v0.9.1, which crosses both v0.9.0 and v0.9.1 upstream releases (see #22 for the full breakage survey). On the C# side this turns out to be a much smaller patch than #22 anticipated, because most of v0.9.0's API churn doesn't surface on our current P/Invoke surface yet.What does surface and is fixed in this PR:
IOX2_SERVICE_ID_LENGTH->IOX2_SERVICE_HASH_LENGTH(value still 64), with callers inNode.csandIox2NativeMethods.csupdated together.iox2_request_storage_t/iox2_request_t->iox2_active_request_storage_t/iox2_active_request_t, matching v0.9.0's split of the server-side handle from the client-side request-mut. Internal-only — no public C# API impact.NativeStructSizesTestspreviously mirrored just 2 of the 27 storage-struct sizes (the largest ones). I expanded it to all 27 — six of the size drifts in this PR would have slipped past the previous tripwire entirely. Same intentional-duplication convention as before (each constant duplicates theStructLayout(Size = N)attribute; sharing a single const between the two sides would erase the tripwire).What does not surface on the current binding and was therefore unchanged:
NodeId->UniqueNodeId(noiox2_node_id_*usage in our P/Invoke surface)UnableToDeliverStrategy->BackpressureStrategy(no QoS enum usage)DegradationCallback->DegradationHandler(no degradation wiring)DegradationAction::Fail->DegradeAndFailNode::remove_stale_resources->try_remove_stale_resourcesConfig::global.service.creation_timeout->node.creation_timeouticeoryx2_loggers->iceoryx2_bb_loggers(link-time only; the stale--features iceoryx2-loggers/filedoc comment inIox2NativeMethods.csis corrected)libc_platformfeature removal (build-flag only)If/when the request/response or degradation surfaces get wired into C#, the corresponding renames will become required at that point.
Test summary
cleanup_dead_nodes_on_openwithsend_dead_node_signal) complement the binding-side concurrency hardening that landed in Csharp iox2 12 ffi testing #20.Pre-Review Checklist for the PR Author
Convert to draft)csharp-iox2-123-short-description)[#123] Add feature description)PR Reviewer Reminders
dotnet formathas been exectued before submittingReferences
Closes #22
Relates to #20 (FFI testing infrastructure that this PR's expanded tripwires extend)
Relates to #21 (cbindgen-driven generation that would obsolete this PR's manual size updates)