public virtual void TestNotMatchedReplicaID() { if (Log.IsDebugEnabled()) { Log.Debug("Running " + GenericTestUtils.GetMethodName()); } ReplicaInPipelineInterface replicaInfo = dn.data.CreateRbw(StorageType.Default, block , false).GetReplica(); ReplicaOutputStreams streams = null; try { streams = replicaInfo.CreateStreams(true, DataChecksum.NewDataChecksum(DataChecksum.Type .Crc32, 512)); streams.GetChecksumOut().Write('a'); dn.data.InitReplicaRecovery(new BlockRecoveryCommand.RecoveringBlock(block, null, RecoveryId + 1)); try { dn.SyncBlock(rBlock, InitBlockRecords(dn)); NUnit.Framework.Assert.Fail("Sync should fail"); } catch (IOException e) { e.Message.StartsWith("Cannot recover "); } DatanodeProtocol namenode = dn.GetActiveNamenodeForBP(PoolId); Org.Mockito.Mockito.Verify(namenode, Org.Mockito.Mockito.Never()).CommitBlockSynchronization (Matchers.Any <ExtendedBlock>(), Matchers.AnyLong(), Matchers.AnyLong(), Matchers.AnyBoolean (), Matchers.AnyBoolean(), Matchers.Any <DatanodeID[]>(), Matchers.Any <string[]>( )); } finally { streams.Close(); } }
/// <exception cref="System.IO.IOException"/> internal virtual int AddSomeBlocks(SimulatedFSDataset fsdataset, int startingBlockId ) { int bytesAdded = 0; for (int i = startingBlockId; i < startingBlockId + Numblocks; ++i) { ExtendedBlock b = new ExtendedBlock(bpid, i, 0, 0); // we pass expected len as zero, - fsdataset should use the sizeof actual // data written ReplicaInPipelineInterface bInfo = fsdataset.CreateRbw(StorageType.Default, b, false ).GetReplica(); ReplicaOutputStreams @out = bInfo.CreateStreams(true, DataChecksum.NewDataChecksum (DataChecksum.Type.Crc32, 512)); try { OutputStream dataOut = @out.GetDataOut(); NUnit.Framework.Assert.AreEqual(0, fsdataset.GetLength(b)); for (int j = 1; j <= BlockIdToLen(i); ++j) { dataOut.Write(j); NUnit.Framework.Assert.AreEqual(j, bInfo.GetBytesOnDisk()); // correct length even as we write bytesAdded++; } } finally { @out.Close(); } b.SetNumBytes(BlockIdToLen(i)); fsdataset.FinalizeBlock(b); NUnit.Framework.Assert.AreEqual(BlockIdToLen(i), fsdataset.GetLength(b)); } return(bytesAdded); }