You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by xi...@apache.org on 2016/09/20 23:58:03 UTC
hadoop git commit: HDFS-10879.
TestEncryptionZonesWithKMS#testReadWrite fails intermittently. Contributed by
Xiao Chen.
Repository: hadoop
Updated Branches:
refs/heads/trunk e80386d69 -> 0e918dff5
HDFS-10879. TestEncryptionZonesWithKMS#testReadWrite fails intermittently. Contributed by Xiao Chen.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/0e918dff
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/0e918dff
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/0e918dff
Branch: refs/heads/trunk
Commit: 0e918dff594e9ba5434fdee7fc1f6394b62b32cd
Parents: e80386d
Author: Xiao Chen <xi...@apache.org>
Authored: Tue Sep 20 16:52:05 2016 -0700
Committer: Xiao Chen <xi...@apache.org>
Committed: Tue Sep 20 16:56:52 2016 -0700
----------------------------------------------------------------------
.../apache/hadoop/hdfs/TestEncryptionZones.java | 23 +++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/0e918dff/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java
index b634dd2..9168ca6 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java
@@ -45,7 +45,9 @@ import org.apache.hadoop.crypto.CipherSuite;
import org.apache.hadoop.crypto.CryptoProtocolVersion;
import org.apache.hadoop.crypto.key.JavaKeyStoreProvider;
import org.apache.hadoop.crypto.key.KeyProvider;
+import org.apache.hadoop.crypto.key.KeyProviderCryptoExtension;
import org.apache.hadoop.crypto.key.KeyProviderFactory;
+import org.apache.hadoop.crypto.key.kms.server.EagerKeyGeneratorKeyProviderCryptoExtension;
import org.apache.hadoop.fs.CommonConfigurationKeysPublic;
import org.apache.hadoop.fs.CreateFlag;
import org.apache.hadoop.fs.FSDataOutputStream;
@@ -734,14 +736,33 @@ public class TestEncryptionZones {
// Roll the key of the encryption zone
assertNumZones(1);
String keyName = dfsAdmin.listEncryptionZones().next().getKeyName();
+ FileEncryptionInfo feInfo1 = getFileEncryptionInfo(encFile1);
cluster.getNamesystem().getProvider().rollNewVersion(keyName);
+ /**
+ * due to the cache on the server side, client may get old keys.
+ * @see EagerKeyGeneratorKeyProviderCryptoExtension#rollNewVersion(String)
+ */
+ boolean rollSucceeded = false;
+ for (int i = 0; i <= EagerKeyGeneratorKeyProviderCryptoExtension
+ .KMS_KEY_CACHE_SIZE_DEFAULT + CommonConfigurationKeysPublic.
+ KMS_CLIENT_ENC_KEY_CACHE_SIZE_DEFAULT; ++i) {
+ KeyProviderCryptoExtension.EncryptedKeyVersion ekv2 =
+ cluster.getNamesystem().getProvider().generateEncryptedKey(TEST_KEY);
+ if (!(feInfo1.getEzKeyVersionName()
+ .equals(ekv2.getEncryptionKeyVersionName()))) {
+ rollSucceeded = true;
+ break;
+ }
+ }
+ Assert.assertTrue("rollover did not generate a new key even after"
+ + " queue is drained", rollSucceeded);
+
// Read them back in and compare byte-by-byte
verifyFilesEqual(fs, baseFile, encFile1, len);
// Write a new enc file and validate
final Path encFile2 = new Path(zone, "myfile2");
DFSTestUtil.createFile(fs, encFile2, len, (short) 1, 0xFEED);
// FEInfos should be different
- FileEncryptionInfo feInfo1 = getFileEncryptionInfo(encFile1);
FileEncryptionInfo feInfo2 = getFileEncryptionInfo(encFile2);
assertFalse("EDEKs should be different", Arrays
.equals(feInfo1.getEncryptedDataEncryptionKey(),
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org