Conversation
Keep the dedicated TF callback group registered while also adding listener-owned internal nodes to the executor so their default callback groups make progress. Cover both dynamic and static-only listeners without changing caller-owned node handling. Generated-by: OpenAI Codex (GPT-5) Signed-off-by: ktyang512 <ktyang512@gmail.com>
Contributor
|
Tick the box to add this pull request to the merge queue (same as
|
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.
Summary
/tfand/tf_staticcallback group registered with thelistener's private executor
default callback group makes progress
caller-owned node handling unchanged
Fixes #968.
Root cause
The simplified
TransformListener(buffer)constructor creates a private node.With
spin_thread=true, it creates a non-auto-added callback group for the TFsubscriptions and registers only that group with its private executor. On
Jazzy, the internal node also has a
TimeSourceparameter-event subscriptionin its default callback group, but that group is never spun.
The fix retains the explicit TF callback-group registration and additionally
adds only
optional_default_node_. Usingadd_node()alone would not registerthe deliberately non-auto-added TF group.
Testing
listener tests passed and both new dynamic/static cases failed at the
default-group assertion
tf2,tf2_msgs, andtf2_rostf2_rosCTest: 14/14 passedgit diff --checkpassedThe regression publishes a targeted
use_sim_time=trueparameter event andchecks that the internal node creates its
/clocksubscription. It also sendsa dynamic or static transform and verifies that the buffer receives it, which
guards the existing manually registered TF callback group.
Scope
The observed
TimeSourcefailure is Jazzy-specific. Current Rolling no longercreates this parameter-event subscription. No public API, QoS setting, thread
count, caller-owned node path, or
spin_thread=falsebehavior is changed.Generative tool disclosure
Generated-by: OpenAI Codex (GPT-5)