-
Notifications
You must be signed in to change notification settings - Fork 24
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
Fix ascii file list parsing logic. #1484
Comments
…le(). The former returns true for '/' while the latter does not. This technically fixes the current issue, but not in a particularly robust way. Recommend that a more complete solution be used for develop.
…op branch. This is to sync them up. However, I'd like to find a more robust solution for distinguishing file lists.
… list parsing functionality into vx_data2d_factory/parse_file_list.cc. Had to update includes for tc_gen and gsidens2orank to handle this change. Next, I need to tweak the parse_file_list logic slightly.
Fixed this for master_v9.1 with a very small one-line change. Added a DEBUG(5) log message to confirm the parsing logic being applied. |
…ibraries need to be added to the gsi_tools linker lists.
…ta files as being ASCII file lists.
…le(). The former returns true for '/' while the latter does not. This technically fixes the current issue, but not in a particularly robust way. Recommend that a more complete solution be used for develop. (#1487)
* Per #1484, porting the same bugfix over from master_v9.1 to the develop branch. This is to sync them up. However, I'd like to find a more robust solution for distinguishing file lists. * Per #1484, split vx_util/get_filenames.cc into 2 pieces and move file list parsing functionality into vx_data2d_factory/parse_file_list.cc. Had to update includes for tc_gen and gsidens2orank to handle this change. Next, I need to tweak the parse_file_list logic slightly. * Per #1484, after moving the parse_file_list() functions, the NetCDF libraries need to be added to the gsi_tools linker lists. * Per #1484, update parse_ascii_file_list() to avoid parsing gridded data files as being ASCII file lists.
The nightly build revealed that the fixes for this issue were not sufficient. We had a few seemingly "random" NB failures recently. But looking at the results over the last week, I actually think there's a deeper problem caused by the changes I made to main_v9.1 and develop for: On 9/17 and 9/15 in main_v3.1 and on 9/12 in develop, the tc_gen unit test failed because it interprets the input ATCF files as being file lists consisting of 4,327,693 input files to be processed! I don't know why some days it runs fine while other it does not? But suffice it to say that the file list processing logic is not yet sufficient! Need to make sure that ASCII ATCF files are never accidentally processed as being files lists. |
This issue also presented itself in the nightly build on 9/26, when the main_v9.1 unit tests failed on Series-Analysis with:
I suspect that Series-Analysis tried to process the input GRIB file as if it were a file list and tried to process "/" as an input file. |
PR #1487 merged a limited fix for this issue into main_v9.1 on 9/9/20. |
Describe the Problem
Tina Kalb ran into unexpected behavior when running pcp_combine in the following way:
bad.grib.txt
The input "bad.grib" file is processed by the parse_ascii_file_list() function and one of the first 10 words is "/" which is counted as a valid path. So it's entire contents is treated as a file list and pcp_combine attempts to process the first word ("GRIB") as the path to a file.
Expected Behavior
We should have better logic to distinguish between file lists and data files. An input GRIB file should not be processed as being a file list.
Environment
Describe your runtime environment:
To Reproduce
Describe the steps to reproduce the behavior:
Relevant Deadlines
List relevant project deadlines here or state NONE.
Funding Source
Define the source of funding and account keys here or state NONE.
Define the Metadata
Assignee
Labels
Projects and Milestone
Define Related Issue(s)
Consider the impact to the other METplus components.
No impacts.
Bugfix Checklist
See the METplus Workflow for details.
Branch name:
bugfix_<Issue Number>_master_<Version>_<Description>
Pull request:
bugfix <Issue Number> master_<Version> <Description>
Branch name:
bugfix_<Issue Number>_develop_<Description>
Pull request:
bugfix <Issue Number> develop <Description>
The text was updated successfully, but these errors were encountered: