Relax cyclonedds pin: 0.10.2 Domain creation hangs on modern kernels#161
Open
PhysicistJohn wants to merge 1 commit into
Open
Relax cyclonedds pin: 0.10.2 Domain creation hangs on modern kernels#161PhysicistJohn wants to merge 1 commit into
PhysicistJohn wants to merge 1 commit into
Conversation
cyclonedds 0.10.2's Domain creation blocks indefinitely on recent Linux kernels (observed on Ubuntu 24.04 / kernel 6.17), failing ChannelFactoryInitialize with no error output. The SDK runs against cyclonedds 11.x (verified Domain creation, ChannelFactoryInitialize with explicit interface, and pub/sub on rt/lowstate and rt/lowcmd, on Python 3.10 and 3.12). Relax the pin to >=0.10.2,<12 so installs on modern kernels resolve a working wheel.
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.
On recent Linux kernels (observed: Ubuntu 24.04, kernel 6.17), the pinned
cyclonedds==0.10.2wheel'sDomaincreation blocks indefinitely when using the auto-determine config path — i.e.ChannelFactoryInitialize(id)with nonetworkInterfaceargument, or a barecyclonedds.domain.Domain(id). Initialization with an explicit interface (ChannelFactoryInitialize(0, "lo")) is unaffected.The SDK works against cyclonedds 11.x — verified
Domaincreation,ChannelFactoryInitializewith and without an explicit interface, and pub/sub onrt/lowstate/rt/lowcmd, on Python 3.10 and 3.12. This relaxes the pin to>=0.10.2,<12so default-path users on modern kernels resolve a working wheel, while older environments keep resolving 0.10.x.One interop note for reviewers: cyclonedds 0.10.x and 11.x participants do not discover each other on a multicast-incapable loopback interface (relevant for sim setups where another process in the system still runs 0.10.x, e.g. alongside the C/C++ SDK's bundled libddsc). Mixed-version deployments on
loshould keep all participants on the same major version.(
ChannelFactory.Init's__initializedguard already makes double-init safe on cyclonedds ≥ 11, where re-creating a live domain raises — that part is already handled on currentmaster.)