[Common][BUG-FIX] Fix SecurityConfiguration.isLegal() to return false when no security config #7201
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.
Purpose
Linked issue: #7146
This PR fixes a logic issue in
SecurityConfiguration.isLegal()where it incorrectly returnstruewhen no security configuration is provided, causing unnecessary security wrapper creation and checkpoint failures in Hadoop 2.7.5 environments.Problem:
isLegal()returnstruewhen bothkeytabandprincipalare emptyHadoopSecuredFileSystem.trySecureFileSystem()to create unnecessary wrappersugi.doAs(), adding overheadInterruptedIOExceptionand HDFS block replica errorsSolution:
isLegal()to returnfalsewhen no security configuration is providedfalsein this caseHadoopSecuredFileSystemwrapper creation in non-Kerberos environmentsChanges
isLegal()to returnfalsewhen bothkeytabandprincipalare emptyfalsein this caseCode Change:
// Before
return true;
// After
// Return false when no security configuration is provided to avoid
// unnecessary security wrapper creation in non-Kerberos environments
return false;