ctubbsii commented on a change in pull request #1127: fixes #1111 support
reading unencrypted WALs from 1.9
URL: https://github.com/apache/accumulo/pull/1127#discussion_r278331385
##########
File path:
server/tserver/src/main/java/org/apache/accumulo/tserver/log/DfsLogger.java
##########
@@ -375,10 +380,19 @@ public static DFSLoggerInputStreams
readHeaderAndReturnStream(FSDataInputStream
log.debug("Using {} for decrypting WAL",
cryptoService.getClass().getSimpleName());
decryptingInput = cryptoService instanceof NoCryptoService ? input
: new DataInputStream(decrypter.decryptStream(input));
- } else {
- log.error("Unsupported WAL version.");
- input.seek(0);
+ } else if (Arrays.equals(magicBuffer, magic3)) {
+ // Read logs files from Accumulo 1.9
+ String cryptoModuleClassname = input.readUTF();
+ if (!cryptoModuleClassname.equals("NullCryptoModule")) {
+ throw new IllegalArgumentException(
+ "Old encryption modules not supported at this time. Unsupported
module : "
+ + cryptoModuleClassname);
+ }
+
decryptingInput = input;
+ } else {
+ throw new IllegalArgumentException(
Review comment:
I misunderstood that you were going to throw EOFException, not catch it.
Catching the more specific error makes sense to me... but we should take care
that the RTE that will now fall through is handled (or propagated)
appropriately by the caller(s).
From a quick examination, it looks like the callers are also logging... so
you should probably just include whatever message stuff you want in the thrown
exception, instead of logging first, and then throwing it, where it will be
logged again, and then thrown again... etc.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services