-
Notifications
You must be signed in to change notification settings - Fork 773
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
Fixes gazebo shutdown error when using nested launch files #1376
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
I'm not sure if there was any reason to use shell=True
.
@ros-pull-request-builder retest this please |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When I try the launch a complex Gazebo world with these changes, it fails to load plugins:
[gzserver-1] [Err] [Plugin.hh:212] Failed to load plugin libgazebo_ros_init.so: libgazebo_ros_init.so: cannot open shared object file: No such file or directory
[gzserver-1] [Err] [Plugin.hh:212] Failed to load plugin libgazebo_ros_factory.so: libgazebo_ros_factory.so: cannot open shared object file: No such file or directory
[gzserver-1] [Err] [Plugin.hh:212] Failed to load plugin libgazebo_ros_force_system.so: libgazebo_ros_force_system.so: cannot open shared object file: No such file or directory
I guess that the changes are somehow affecting command line argument parsing?
Actually, the errors occur in an empty world too. You just need to pass
|
Hmm, I'm not sure why that is happening, as the environment variables are included here in
|
I'm not sure either. The difference between |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Not sure what is happening with CI though |
We're working on fixing CI issues (e.g. #1380). Please stand by. |
Signed-off-by: Aditya <[email protected]>
Signed-off-by: Aditya <[email protected]>
88b5dd2
to
e5b5676
Compare
Rebased on |
Signed-off-by: Aditya <[email protected]>
Signed-off-by: Aditya <[email protected]>
The errors in CI are unrelated to this PR :
|
Are we sure the issue commented here was not related to the PR? |
Yeah it was caused due to earlier changes in this PR, fixed in this commit : e5b5676 , the space character was causing the issue. |
Hey all! e.g. this is no longer working. @adityapande-1995 @ivanpauno have you noticed something like this? |
@Arne-Christoph For visibility, it would be better to open up an issue with the exact commands that used to work, describing the previous and new behavior. |
alright. will do so. |
Resolves ros2/launch#545
Originally,
gzserver
andgzclient
were launched usingshell=True
.This means the launch process executes a shell, which executes the server and client. When launch_testing exits, it sends SIGINT to the children shell processes, which do not forward SIGINT to the respective server and client children. These processes remain alive even after launch exits, as children of
systemd
.Check out https://linuxconfig.org/how-to-propagate-a-signal-to-child-processes-from-a-bash-script for reference.
Testing
The following test launch file should exit properly and kill both the client and server processes :