📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 7.12-8.6

简而言之,当 Elasticsearch 中的加密块(一种数据文件)小于预期大小时,会发生此错误。这可能是由于数据损坏或数据传输不完整导致的。要解决此问题,你可以尝试重新索引数据,确保数据传输完成,或检查数据文件是否存在损坏。如果问题仍然存在,请考虑检查你的加密设置或你的数据与 Elasticsearch 的兼容性。

日志上下文 #

日志 “The encrypted blob [” + blobName + “] is too small [” + bytesRead + “]” 的类名是 EncryptedRepository.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:

try {
 // read the DEK Id (fixed length) which is prepended to the encrypted blob
 final byte[] dekIdBytes = new byte[DEK_ID_LENGTH];
 final int bytesRead = Streams.readFully(encryptedDataInputStream; dekIdBytes);
 if (bytesRead != DEK_ID_LENGTH) {
 throw new RepositoryException(repositoryName; "The encrypted blob [" + blobName + "] is too small [" + bytesRead + "]");
 }
 final String dekId = new String(dekIdBytes; StandardCharsets.UTF_8);
 // might open a connection to read and decrypt the DEK; but most likely it will be served from cache
 final SecretKey dek = getDEKById.apply(dekId);
 // read and decrypt the rest of the blob