Fix TypeError in systemVersionPlist.py: handle None value for sysdiagnose_archive #1392
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.
Bug Description
The
system_version_plistartifact crashes with aTypeErrorwhen processing files that don't contain a sysdiagnose archive.Error Log:
[230/446] system_version_plist [systemVersionPlist] artifact started Reading system_version_plist artifact had errors! Error was argument of type 'NoneType' is not iterable Exception Traceback: File "scripts/artifacts/systemVersionPlist.py", line 41, in system_version_plist elif 'sysdiagnose_' in sysdiagnose_archive and "IN_PROGRESS_" not in sysdiagnose_archive: TypeError: argument of type 'NoneType' is not iterable
Root Cause
In
scripts/artifacts/systemVersionPlist.py:Line 41: When
context.get_source_file_path("sysdiagnose_*.tar.gz")doesn't find a matching file, it returnsNone. The code then attempts to perform a string membership test (inoperator) onNone, causing aTypeError.Line 39: The
data_sourcevariable is incorrectly assigned to the function objectsystem_version_plistinstead of the file pathplist_file.Solution
Changes in
scripts/artifacts/systemVersionPlist.py:Line 41 - Added None check:
This fix ensures that the code checks if sysdiagnose_archive is not None before attempting string operations, preventing the TypeError.