Minor: Change YAML FullLoader
to Loader
#223
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In PyYaml version 5.x above, the
FullLoader
is not backward compatible with previous PyYaml versions. This results in ARC crash in some restart jobs. TheLoader
function, instead, is backward compatible.-- legacy comments
PyYaml version 3.12 works well with the current ARC codebase. New versions of PyYaml leads to restart issues.
When I restart an ARC job, it crashed because PyYaml complains that
"yaml.constructor.ConstructorError: while constructing a Python instance
expected a class, but found <class 'builtin_function_or_method'>"
After traceback the code, I find PyYaml crashed because of the following code in ARC
yaml.load(stream=f, Loader=yaml.FullLoader)
This seems to be a common PyYaml issue, especially for new versions:
facebookresearch/Detectron#840
Take advice online, I changed the PyYaml version to 3.12. Because in this version, FullLoader is not available, I changed it to Loader. Now we have in ARC
pyyaml = 3.12
yaml.load(stream=f, Loader=yaml.Loader)
After these changes, my restart job works fine :-)