Skip to content

YAML errors in map_server not caught #1010

Open
@celynw

Description

@celynw

When running rosrun map_server map_server map.yaml or equivalent, any errors cause it to close without producing any output.
For instance, setting the resolution as a string.
I see in the code (map_server/src/main.cpp) it is supposed to produce a ROS_ERROR if the resolution could not be loaded, but this is never printed.

        try {
          doc["resolution"] >> res;
        } catch (YAML::InvalidScalar &) {
          ROS_ERROR("The map does not contain a resolution tag or it is invalid.");
          exit(-1);
        }

In my usage I never get any of these error messages.

I can't find and specifically catch what is being thrown, but catching std::exception::what() does work:

yaml-cpp: error at line 0, column 0: bad conversion

Environment:

  • OS: Ubuntu 18.04
  • Branch: melodic-devel
  • Commit: b496f689

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions