in encryption/src/main/java/org/apache/solr/encryption/EncryptionRequestHandler.java [307:329]
private void encryptAsync(SolrQueryRequest req, long startTimeMs) {
log.debug("submitting async encryption");
executor.submit(() -> {
try {
log.debug("running async encryption");
CommitUpdateCommand commitCmd = new CommitUpdateCommand(req, true);
// Trigger EncryptionMergePolicy.findForcedMerges() to re-encrypt
// each segment which is not encrypted with the latest active key id.
// TODO: Set maxOptimizeSegments to Integer.MAX_VALUE to trigger EncryptionMergePolicy
// when EncryptionHeavyLoadTest passes with it.
commitCmd.maxOptimizeSegments = 1;
req.getCore().getUpdateHandler().commit(commitCmd);
log.info("Successfully encrypted the index in " + elapsedTime(startTimeMs));
} catch (IOException e) {
log.error("Exception while encrypting the index after " + elapsedTime(startTimeMs), e);
} finally {
synchronized (pendingEncryptionLock) {
pendingEncryptions.remove(req.getCore().getName());
}
}
return null;
});
}