ZhenyuLi created HDFS-17897:
-------------------------------

             Summary: Handle InvalidEncryptionKeyException during striped file 
checksum 
                 Key: HDFS-17897
                 URL: https://issues.apache.org/jira/browse/HDFS-17897
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: encryption
    Affects Versions: 3.1.2
            Reporter: ZhenyuLi


  HDFS-12931 added handling for InvalidEncryptionKeyException in 
ReplicatedFileChecksumComputer.checksumBlock() to support getFileChecksum() 
with encrypted data transfer. However, the parallel striped file
   path StripedFileNonStripedChecksumComputer.checksumBlockGroup() was not 
updated.

  Both paths call DFSClient.connectToDN() which performs a SASL handshake using 
a cached DataEncryptionKey (DEK). When the DEK references a BlockKey that has 
been removed from the DataNode (e.g., after
  NameNode restart or key rotation), the handshake fails with 
InvalidEncryptionKeyException.

  In the replicated path, this exception is caught, clearDataEncryptionKey() is 
called to invalidate the cached DEK, and the block is retried. In the striped 
path, the exception falls through to the
  generic catch (IOException) block, which only logs a warning. The stale DEK 
is never cleared, so every DataNode in the block group fails with the same 
error. The operation fails permanently — even
  user-level retries will reuse the same stale cached DEK.

  Fix: Add catch (InvalidEncryptionKeyException) in checksumBlockGroup(), 
mirroring the existing handling in checksumBlock().



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to