Skip to content

Conversation

@liumihust
Copy link

@liumihust liumihust commented Jul 25, 2017

Additional PR for the same bug

BlockIteratorImpl.nextBlock() will look for the blocks in the source volume, if there are no blocks any more,it will retrurn null to DiskBalancer.getBlockToCopy().However, the DiskBalancer.getBlockToCopy() will check whether it's a valid block.
when I look into the FsDatasetSpi.isValidBlock(), I find that it doesn't check the null pointer!
in fact,we firstly need to check whether it's null or not, or exception will occur.
this bug is hard to find, because the DiskBalancer hardly copy all the data of one volume to others.even if some times we may copy all the data of one volume to other volumes, when the bug occurs, the copy process has done.
However, when we try to copy all the data of two or more volumes to other volumes in more than one step, the thread will be shut down,which is caused by the bug above.

the bug can fixed by two ways:
1)before the call of FsDatasetSpi.isValidBlock(), we check the null pointer
2)check the null pointer inside the implementation of FsDatasetSpi.isValidBlock()
shanthoosh pushed a commit to shanthoosh/hadoop that referenced this pull request Oct 15, 2019
navina
**PR 1: AzureClient + AzureConfig** (current PR)

Author: PawasChhokra <Jaimatadi1$>

Reviewers: Navina Ramesh <[email protected]>

Closes apache#254 from PawasChhokra/AzureStorageClient
NyteKnight pushed a commit to NyteKnight/hadoop that referenced this pull request Jun 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants