[ https://issues.apache.org/jira/browse/HDFS-6147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vinayakumar B updated HDFS-6147: -------------------------------- Resolution: Won't Fix Status: Resolved (was: Patch Available) Since the block scanner is re-written, this issue no longer holds. > New blocks scanning will be delayed due to issue in > BlockPoolSliceScanner#updateBytesToScan(..) > ----------------------------------------------------------------------------------------------- > > Key: HDFS-6147 > URL: https://issues.apache.org/jira/browse/HDFS-6147 > Project: Hadoop HDFS > Issue Type: Bug > Components: datanode > Affects Versions: 2.4.0 > Reporter: Vinayakumar B > Assignee: Vinayakumar B > Attachments: HDFS-6147.patch, HDFS-6147.patch, HDFS-6147.patch, > HDFS-6147.patch, HDFS-6147.patch, HDFS-6147.patch > > > New blocks scanning will be delayed if old blocks deleted after datanode > restart. > Steps: > 1. Write some blocks and wait till all scans over > 2. Restart the datanode > 3. Delete some of the blocks > 4. Write new blocks which are less in size compared to deleted blocks. > Problem: > {{BlockPoolSliceScanner#updateBytesToScan(..)}} updates {{bytesLeft}} based > on following comparison > {code} if (lastScanTime < currentPeriodStart) { > bytesLeft += len; > }{code} > But in {{BlockPoolSliceScanner#assignInitialVerificationTimes()}} > {{bytesLeft}} decremented using below comparison > {code}if (now - entry.verificationTime < scanPeriod) {{code} > Hence when the old blocks are deleted {{bytesLeft}} going negative. > new blocks will not be scanned until it becomes positive again. > So in both places verificationtime should be compared against scanperiod. -- This message was sent by Atlassian JIRA (v6.3.4#6332)