Skip to content

init_and_remove_ros_arguments parse arguments two times #1412

@iuhilnehc-ynos

Description

@iuhilnehc-ynos

Bug report

Required Info:

  • Operating System:
    • Ubuntu 20.04
  • Installation type:
    • source
  • Version or commit hash:
  • DDS implementation:
    • Fast-RTPS
  • Client library (if applicable):
    • rclcpp

Steps to reproduce issue

$ ros2 run demo_nodes_cpp listener --ros-args --log-level debug

Expected behavior

<...>
[DEBUG] [1603184568.251432332] [rcl]: Couldn't parse arg 0 (/home/sharedata/Linux/ROS2/docker_ros2_master/local_install/lib/demo_nodes_cpp/listener) as a remap rule in its deprecated form. Error: Expected lexeme type (19) not found, search ended at index 87, at /home/sharedata/Linux/ROS2/docker_ros2_master/src/ros2/rcl/rcl/src/rcl/lexer_lookahead.c:233
<...>

Actual behavior

<...>
[DEBUG] [1603184568.251432332] [rcl]: Couldn't parse arg 0 (/home/sharedata/Linux/ROS2/docker_ros2_master/local_install/lib/demo_nodes_cpp/listener) as a remap rule in its deprecated form. Error: Expected lexeme type (19) not found, search ended at index 87, at /home/sharedata/Linux/ROS2/docker_ros2_master/src/ros2/rcl/rcl/src/rcl/lexer_lookahead.c:233
<...>
[DEBUG] [1603184568.253581614] [rcl]: Couldn't parse arg 0 (/home/sharedata/Linux/ROS2/docker_ros2_master/local_install/lib/demo_nodes_cpp/listener) as a remap rule in its deprecated form. Error: Expected lexeme type (19) not found, search ended at index 87, at /home/sharedata/Linux/ROS2/docker_ros2_master/src/ros2/rcl/rcl/src/rcl/lexer_lookahead.c:233

Additional information

std::vector<std::string>
init_and_remove_ros_arguments(
int argc,
char const * const argv[],
const InitOptions & init_options)
{
init(argc, argv, init_options);
return remove_ros_arguments(argc, argv);
}

Fix: At

std::vector<std::string>
remove_ros_arguments(int argc, char const * const argv[])
, we need to check if get_global_default_context()->get_rcl_context() exist, and then decide to call rcl_parse_arguments or not.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions