Skip to content

[BUG] Consistent and critical failure parsing large (>500 lines) YAML configuration files. #419

@joncppl

Description

@joncppl

Bug report

Required Info:

  • Operating System:
    • Ubuntu 18.04
  • Installation type:
    • Latest Crystal Binaries (also Docker Image)
  • Version or commit hash:
    • Crystal Patch 4
  • DDS implementation:
    • Fast-RTPS
  • Client library (if applicable):
    • both

Steps to reproduce issue

Make any yaml parameter file is very long

/:
  test:
    ros__parameters:
        param1: 0
        param2: 1
        # .... continue for about 500 lines

Run with any node

ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function __params:=./bigyamlfile.yml

The same occurs with the python examples, and every node I've tried.

Expected behavior

Node load as normal with the parameters set.

Actual behavior

Critical Failure with corrupted size vs. prev_size during node construction.

Additional information

The abort comes during the call to yaml_parser_delete. https://github.com/ros2/rcl/blob/master/rcl_yaml_param_parser/src/parser.c#L1384

I think that libyaml's parser object is somehow getting corrupted.

I have succeeded in parsing such yaml files with libyaml (0.1.8), pyyaml, etc., with no issue.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions