Skip to content

Bugfix: Fix ASCII2NC failure for tab-delimited input files #3095

@JohnHalleyGotway

Description

@JohnHalleyGotway

Describe the Problem

This issue was raised by @jwraby via the dtcenter/METplus#2907 METplus Discussion.

@jwraby also raised a second issue via the dtcenter/METplus#2920, that can also be fixed with this issue.
Modify the is_eq(a,b) logic to return true when both a and b are bad data, specifically NaN. But make sure that change does not cause unintended differences.

In MET version 11.1.0, ascii2nc was able to handle tab-delimited inputs but they cause a runtime error in MET version 12.0.0:

ERROR  : StringArray::operator[](int) const -> range check error!

The problem was introduced by pull request #2846 for issue #2654. Line number 75 of iabp_handler.cc assumes the input is space-separated which causes the parsing error.

An easy temporary workaround is using the -format command line option (e.g. -format met_point) to bypass this error in the determine_ascii_format() function.

For this issue, recommend fixing the underlying parsing issue as well as adding a new unit test to run ascii2nc with tab-delimited input.

Relevant Deadlines

Recommend fixing in both the main_v12.0 and develop branches. However, wait until a bugfix release is actually needed prior to cutting v12.0.3.

Funding Source

2702701

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Review default alert labels
  • Select component(s)
  • Select priority
  • Select requestor(s)

Milestone and Projects

  • Select Milestone as the next bugfix version
  • Select Coordinated METplus-X.Y Support project for support of the current coordinated release
  • Select MET-X.Y.Z Development project for development toward the next official release

Define Related Issue(s)

Consider the impact to the other METplus components.

Bugfix Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding Source.
  • Fork this repository or create a branch of main_<Version>.
    Branch name: bugfix_<Issue Number>_main_<Version>_<Description>
  • Fix the bug and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Push local changes to GitHub.
  • Submit a pull request to merge into main_<Version>.
    Pull request: bugfix <Issue Number> main_<Version> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s) and Development issue
    Select: Milestone as the next bugfix version
    Select: Coordinated METplus-X.Y Support project for support of the current coordinated release
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Complete the steps above to fix the bug on the develop branch.
    Branch name: bugfix_<Issue Number>_develop_<Description>
    Pull request: bugfix <Issue Number> develop <Description>
    Select: Reviewer(s) and Development issue
    Select: Milestone as the next official version
    Select: MET-X.Y.Z Development project for development toward the next official release
  • Close this issue.

Metadata

Metadata

Type

No type

Projects

Status

🏁 Done

Relationships

None yet

Development

No branches or pull requests

Issue actions