-
Notifications
You must be signed in to change notification settings - Fork 356
NetworkManager: fix entity creation in network secondary #3160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
arjo129
merged 2 commits into
gazebosim:gz-sim10
from
srmainwaring:prs/10/fix-distributed-sim
Nov 3, 2025
Merged
NetworkManager: fix entity creation in network secondary #3160
arjo129
merged 2 commits into
gazebosim:gz-sim10
from
srmainwaring:prs/10/fix-distributed-sim
Nov 3, 2025
Conversation
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
- Create entities in secondary if requested in SimulationRunner::Step. - Add check that parent component is valid before dereference. Signed-off-by: Rhys Mainwaring <[email protected]>
arjo129
approved these changes
Nov 3, 2025
Contributor
|
@Mergifyio backport main gz-sim9 gz-sim8 ign-gazebo6 |
Contributor
✅ Backports have been created
|
mergify bot
pushed a commit
that referenced
this pull request
Nov 3, 2025
Fixes #3158 ## Summary This fixes a bug which prevents the simulation server running in multiple processes as described in https://gazebosim.org/api/sim/10/distributedsimulation.html. The issue is described in #3158, essentially the NetworkManagerSecondary does not have the parent model associated with the performer entity. There is also another issue where a dereference of a parent component to obtain the parent entity causes a segmentation fault when running more than one secondary. A check is added to prevent that. There are some other issues with the distributed simulation as well, such as the pause button not having any effect, but that and other issues will not be dealt with in this PR as they do not prevent the example from running. ## Details The example used is levels.sdf. It is run in distributed mode on two secondaries as follows. Terminal 1: secondary 1 ``` gz sim -v4 -s -r --levels --network-role secondary levels.sdf ``` Terminal 2: secondary 2 ``` gz sim -v4 -s -r --levels --network-role secondary levels.sdf ``` Terminal 3: primary ``` gz sim -v4 -s -r --levels --network-role primary --network-secondaries 2 levels.sdf ``` Terminal 4: gui ``` gz sim -v4 -g ``` Before this patch the errors reported in the associated issue occur. After this no errors are reported. Signed-off-by: Rhys Mainwaring <[email protected]> Co-authored-by: Arjo Chakravarty <[email protected]> (cherry picked from commit 4f48629)
9 tasks
mergify bot
pushed a commit
that referenced
this pull request
Nov 3, 2025
Fixes #3158 ## Summary This fixes a bug which prevents the simulation server running in multiple processes as described in https://gazebosim.org/api/sim/10/distributedsimulation.html. The issue is described in #3158, essentially the NetworkManagerSecondary does not have the parent model associated with the performer entity. There is also another issue where a dereference of a parent component to obtain the parent entity causes a segmentation fault when running more than one secondary. A check is added to prevent that. There are some other issues with the distributed simulation as well, such as the pause button not having any effect, but that and other issues will not be dealt with in this PR as they do not prevent the example from running. ## Details The example used is levels.sdf. It is run in distributed mode on two secondaries as follows. Terminal 1: secondary 1 ``` gz sim -v4 -s -r --levels --network-role secondary levels.sdf ``` Terminal 2: secondary 2 ``` gz sim -v4 -s -r --levels --network-role secondary levels.sdf ``` Terminal 3: primary ``` gz sim -v4 -s -r --levels --network-role primary --network-secondaries 2 levels.sdf ``` Terminal 4: gui ``` gz sim -v4 -g ``` Before this patch the errors reported in the associated issue occur. After this no errors are reported. Signed-off-by: Rhys Mainwaring <[email protected]> Co-authored-by: Arjo Chakravarty <[email protected]> (cherry picked from commit 4f48629)
mergify bot
pushed a commit
that referenced
this pull request
Nov 3, 2025
Fixes #3158 ## Summary This fixes a bug which prevents the simulation server running in multiple processes as described in https://gazebosim.org/api/sim/10/distributedsimulation.html. The issue is described in #3158, essentially the NetworkManagerSecondary does not have the parent model associated with the performer entity. There is also another issue where a dereference of a parent component to obtain the parent entity causes a segmentation fault when running more than one secondary. A check is added to prevent that. There are some other issues with the distributed simulation as well, such as the pause button not having any effect, but that and other issues will not be dealt with in this PR as they do not prevent the example from running. ## Details The example used is levels.sdf. It is run in distributed mode on two secondaries as follows. Terminal 1: secondary 1 ``` gz sim -v4 -s -r --levels --network-role secondary levels.sdf ``` Terminal 2: secondary 2 ``` gz sim -v4 -s -r --levels --network-role secondary levels.sdf ``` Terminal 3: primary ``` gz sim -v4 -s -r --levels --network-role primary --network-secondaries 2 levels.sdf ``` Terminal 4: gui ``` gz sim -v4 -g ``` Before this patch the errors reported in the associated issue occur. After this no errors are reported. Signed-off-by: Rhys Mainwaring <[email protected]> Co-authored-by: Arjo Chakravarty <[email protected]> (cherry picked from commit 4f48629)
This was referenced Nov 3, 2025
mergify bot
pushed a commit
that referenced
this pull request
Nov 3, 2025
Fixes #3158 ## Summary This fixes a bug which prevents the simulation server running in multiple processes as described in https://gazebosim.org/api/sim/10/distributedsimulation.html. The issue is described in #3158, essentially the NetworkManagerSecondary does not have the parent model associated with the performer entity. There is also another issue where a dereference of a parent component to obtain the parent entity causes a segmentation fault when running more than one secondary. A check is added to prevent that. There are some other issues with the distributed simulation as well, such as the pause button not having any effect, but that and other issues will not be dealt with in this PR as they do not prevent the example from running. ## Details The example used is levels.sdf. It is run in distributed mode on two secondaries as follows. Terminal 1: secondary 1 ``` gz sim -v4 -s -r --levels --network-role secondary levels.sdf ``` Terminal 2: secondary 2 ``` gz sim -v4 -s -r --levels --network-role secondary levels.sdf ``` Terminal 3: primary ``` gz sim -v4 -s -r --levels --network-role primary --network-secondaries 2 levels.sdf ``` Terminal 4: gui ``` gz sim -v4 -g ``` Before this patch the errors reported in the associated issue occur. After this no errors are reported. Signed-off-by: Rhys Mainwaring <[email protected]> Co-authored-by: Arjo Chakravarty <[email protected]> (cherry picked from commit 4f48629)
9 tasks
iche033
pushed a commit
that referenced
this pull request
Nov 11, 2025
Fixes #3158 ## Summary This fixes a bug which prevents the simulation server running in multiple processes as described in https://gazebosim.org/api/sim/10/distributedsimulation.html. The issue is described in #3158, essentially the NetworkManagerSecondary does not have the parent model associated with the performer entity. There is also another issue where a dereference of a parent component to obtain the parent entity causes a segmentation fault when running more than one secondary. A check is added to prevent that. There are some other issues with the distributed simulation as well, such as the pause button not having any effect, but that and other issues will not be dealt with in this PR as they do not prevent the example from running. ## Details The example used is levels.sdf. It is run in distributed mode on two secondaries as follows. Terminal 1: secondary 1 ``` gz sim -v4 -s -r --levels --network-role secondary levels.sdf ``` Terminal 2: secondary 2 ``` gz sim -v4 -s -r --levels --network-role secondary levels.sdf ``` Terminal 3: primary ``` gz sim -v4 -s -r --levels --network-role primary --network-secondaries 2 levels.sdf ``` Terminal 4: gui ``` gz sim -v4 -g ``` Before this patch the errors reported in the associated issue occur. After this no errors are reported. Signed-off-by: Rhys Mainwaring <[email protected]> Co-authored-by: Arjo Chakravarty <[email protected]>
IceShuttle
pushed a commit
to IceShuttle/gz-sim
that referenced
this pull request
Nov 14, 2025
) Fixes gazebosim#3158 ## Summary This fixes a bug which prevents the simulation server running in multiple processes as described in https://gazebosim.org/api/sim/10/distributedsimulation.html. The issue is described in gazebosim#3158, essentially the NetworkManagerSecondary does not have the parent model associated with the performer entity. There is also another issue where a dereference of a parent component to obtain the parent entity causes a segmentation fault when running more than one secondary. A check is added to prevent that. There are some other issues with the distributed simulation as well, such as the pause button not having any effect, but that and other issues will not be dealt with in this PR as they do not prevent the example from running. ## Details The example used is levels.sdf. It is run in distributed mode on two secondaries as follows. Terminal 1: secondary 1 ``` gz sim -v4 -s -r --levels --network-role secondary levels.sdf ``` Terminal 2: secondary 2 ``` gz sim -v4 -s -r --levels --network-role secondary levels.sdf ``` Terminal 3: primary ``` gz sim -v4 -s -r --levels --network-role primary --network-secondaries 2 levels.sdf ``` Terminal 4: gui ``` gz sim -v4 -g ``` Before this patch the errors reported in the associated issue occur. After this no errors are reported. Signed-off-by: Rhys Mainwaring <[email protected]> Co-authored-by: Arjo Chakravarty <[email protected]>
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.
🦟 Bug fix
Fixes #3158
Summary
This fixes a bug which prevents the simulation server running in multiple processes as described in https://gazebosim.org/api/sim/10/distributedsimulation.html.
The issue is described in #3158, essentially the
NetworkManagerSecondarydoes not have the parent model associated with the performer entity.There is also another issue where a dereference of a parent component to obtain the parent entity causes a segmentation fault when running more than one secondary. A check is added to prevent that.
There are some other issues with the distributed simulation as well, such as the pause button not having any effect, but that and other issues will not be dealt with in this PR as they do not prevent the example from running.
Details
The example used is
levels.sdf. It is run in distributed mode on two secondaries as follows.Terminal 1: secondary 1
Terminal 2: secondary 2
Terminal 3: primary
Terminal 4: gui
Before this patch the errors reported in the associated issue occur. After this no errors are reported.
Checklist
codecheckpassed (See contributing)Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining
Signed-off-byandGenerated-bymessages.