[
https://issues.apache.org/jira/browse/HDFS-4298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aaron T. Myers updated HDFS-4298:
---------------------------------
Attachment: HDFS-4298.patch
Thanks a lot for the review, Todd. Here's a patch which addresses your feedback.
bq. Small thing: in the new unit test testSelectInputStreamsNotOnBoundary it
would be good to actually check the resulting list of streams. It should
include the 21-30 stream, right?
Good idea. Added an assertion and had to amend
FileJournalManager#getRemoteEditLogs to implement this correctly.
bq. in getLogsAsString, it should be pass false for isReading, right?
You're right that the test isn't reading from the returned streams, but
changing this will result in the test failing as-written. I could change the
cases that the tests are asserting, but then the tests won't really be testing
what they were intended to, which is what streams are returned when you do ask
for streams which you can read from.
> StorageRetentionManager spews warnings when used with QJM
> ---------------------------------------------------------
>
> Key: HDFS-4298
> URL: https://issues.apache.org/jira/browse/HDFS-4298
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: namenode
> Affects Versions: 3.0.0, 2.0.3-alpha
> Reporter: Todd Lipcon
> Assignee: Aaron T. Myers
> Attachments: HDFS-4298.patch, HDFS-4298.patch, HDFS-4298.patch
>
>
> When the NN is configured with a QJM, we see the following warning message
> every time a checkpoint is made or uploaded:
> 12/12/10 16:07:52 WARN namenode.FSEditLog: Unable to determine input streams
> from QJM to [127.0.0.1:13001, 127.0.0.1:13002, 127.0.0.1:13003]. Skipping.
> org.apache.hadoop.hdfs.qjournal.client.QuorumException: Got too many
> exceptions to achieve quorum size 2/3. 3 exceptions thrown:
> 127.0.0.1:13002: Asked for firstTxId 114837 which is in the middle of file
> /tmp/jn-2/myjournal/current/edits_0000000000000095185-0000000000000114846
> ...
> This is because, since HDFS-2946, the NN calls {{selectInputStreams}} to
> determine the number of log segments and put a cap on the number. This API
> throws an exception in the case of QJM if the argument falls in the middle of
> an edit log boundary.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira