YARN-2905. AggregatedLogsBlock page can infinitely loop if the aggregated log file is corrupted. Contributed by Varun Saxena
(cherry picked from commit0f9528b99a
) (cherry picked from commit38ea1419f6
) (cherry picked from commit 3877166754956bf66a8b1c81440dba2d279a1e03)
This commit is contained in:
parent
bfc0a19d6d
commit
2f0a34b5ba
|
@ -27,6 +27,9 @@ Release 2.6.1 - UNRELEASED
|
||||||
YARN-2906. CapacitySchedulerPage shows HTML tags for a queue's Active Users.
|
YARN-2906. CapacitySchedulerPage shows HTML tags for a queue's Active Users.
|
||||||
(Jason Lowe via jianhe)
|
(Jason Lowe via jianhe)
|
||||||
|
|
||||||
|
YARN-2905. AggregatedLogsBlock page can infinitely loop if the aggregated
|
||||||
|
log file is corrupted (Varun Saxena via jlowe)
|
||||||
|
|
||||||
Release 2.6.0 - 2014-11-18
|
Release 2.6.0 - 2014-11-18
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -801,6 +801,10 @@ public class AggregatedLogFormat {
|
||||||
return currentLogData.skip(n);
|
return currentLogData.skip(n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int read() throws IOException {
|
||||||
|
return currentLogData.read();
|
||||||
|
}
|
||||||
|
|
||||||
public int read(byte[] buf, int off, int len) throws IOException {
|
public int read(byte[] buf, int off, int len) throws IOException {
|
||||||
return currentLogData.read(buf, off, len);
|
return currentLogData.read(buf, off, len);
|
||||||
}
|
}
|
||||||
|
|
|
@ -231,8 +231,14 @@ public class AggregatedLogsBlock extends HtmlBlock {
|
||||||
long totalSkipped = 0;
|
long totalSkipped = 0;
|
||||||
while (totalSkipped < start) {
|
while (totalSkipped < start) {
|
||||||
long ret = logReader.skip(start - totalSkipped);
|
long ret = logReader.skip(start - totalSkipped);
|
||||||
if (ret < 0) {
|
if (ret == 0) {
|
||||||
throw new IOException( "Premature EOF from container log");
|
//Read one byte
|
||||||
|
int nextByte = logReader.read();
|
||||||
|
// Check if we have reached EOF
|
||||||
|
if (nextByte == -1) {
|
||||||
|
throw new IOException( "Premature EOF from container log");
|
||||||
|
}
|
||||||
|
ret = 1;
|
||||||
}
|
}
|
||||||
totalSkipped += ret;
|
totalSkipped += ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue