HBASE-24830 Some tests involving RS crash fail with NullPointerException after HBASE-24632 in branch-2
This commit is contained in:
parent
4a2f3f89f4
commit
cee7431d0a
|
@ -104,7 +104,8 @@ public class SplitLogWorker implements Runnable {
|
||||||
// encountered a bad non-retry-able persistent error.
|
// encountered a bad non-retry-able persistent error.
|
||||||
try {
|
try {
|
||||||
SplitLogWorkerCoordination splitLogWorkerCoordination =
|
SplitLogWorkerCoordination splitLogWorkerCoordination =
|
||||||
server.getCoordinatedStateManager().getSplitLogWorkerCoordination();
|
server.getCoordinatedStateManager() == null ? null
|
||||||
|
: server.getCoordinatedStateManager().getSplitLogWorkerCoordination();
|
||||||
if (!WALSplitter.splitLogFile(walDir, fs.getFileStatus(new Path(walDir, filename)), fs, conf,
|
if (!WALSplitter.splitLogFile(walDir, fs.getFileStatus(new Path(walDir, filename)), fs, conf,
|
||||||
p, sequenceIdChecker, splitLogWorkerCoordination, factory, server)) {
|
p, sequenceIdChecker, splitLogWorkerCoordination, factory, server)) {
|
||||||
return Status.PREEMPTED;
|
return Status.PREEMPTED;
|
||||||
|
|
|
@ -197,8 +197,6 @@ public class WALSplitter {
|
||||||
Configuration conf, CancelableProgressable reporter, LastSequenceId idChecker,
|
Configuration conf, CancelableProgressable reporter, LastSequenceId idChecker,
|
||||||
SplitLogWorkerCoordination splitLogWorkerCoordination, WALFactory factory,
|
SplitLogWorkerCoordination splitLogWorkerCoordination, WALFactory factory,
|
||||||
RegionServerServices rsServices) throws IOException {
|
RegionServerServices rsServices) throws IOException {
|
||||||
Preconditions.checkNotNull(splitLogWorkerCoordination,
|
|
||||||
"Can't be null; needed to propagate WAL corruption if any found");
|
|
||||||
Path rootDir = CommonFSUtils.getRootDir(conf);
|
Path rootDir = CommonFSUtils.getRootDir(conf);
|
||||||
FileSystem rootFS = rootDir.getFileSystem(conf);
|
FileSystem rootFS = rootDir.getFileSystem(conf);
|
||||||
WALSplitter splitter = new WALSplitter(factory, conf, walDir, walFS, rootDir, rootFS, idChecker,
|
WALSplitter splitter = new WALSplitter(factory, conf, walDir, walFS, rootDir, rootFS, idChecker,
|
||||||
|
|
|
@ -32,6 +32,9 @@ import java.util.concurrent.atomic.AtomicLong;
|
||||||
import org.apache.hadoop.conf.Configuration;
|
import org.apache.hadoop.conf.Configuration;
|
||||||
import org.apache.hadoop.fs.FileSystem;
|
import org.apache.hadoop.fs.FileSystem;
|
||||||
import org.apache.hadoop.fs.Path;
|
import org.apache.hadoop.fs.Path;
|
||||||
|
import org.apache.hadoop.hbase.Cell;
|
||||||
|
import org.apache.hadoop.hbase.CellBuilderFactory;
|
||||||
|
import org.apache.hadoop.hbase.CellBuilderType;
|
||||||
import org.apache.hadoop.hbase.HBaseClassTestRule;
|
import org.apache.hadoop.hbase.HBaseClassTestRule;
|
||||||
import org.apache.hadoop.hbase.HBaseConfiguration;
|
import org.apache.hadoop.hbase.HBaseConfiguration;
|
||||||
import org.apache.hadoop.hbase.HBaseTestingUtility;
|
import org.apache.hadoop.hbase.HBaseTestingUtility;
|
||||||
|
@ -172,13 +175,17 @@ public class TestReplicationSource {
|
||||||
TEST_UTIL.waitFor(30000, () -> rs.getWalEntryFilter() != null);
|
TEST_UTIL.waitFor(30000, () -> rs.getWalEntryFilter() != null);
|
||||||
WALEntryFilter wef = rs.getWalEntryFilter();
|
WALEntryFilter wef = rs.getWalEntryFilter();
|
||||||
// Test non-system WAL edit.
|
// Test non-system WAL edit.
|
||||||
|
WALEdit we = new WALEdit().add(CellBuilderFactory.create(CellBuilderType.DEEP_COPY).
|
||||||
|
setRow(HConstants.EMPTY_START_ROW).
|
||||||
|
setFamily(HConstants.CATALOG_FAMILY).
|
||||||
|
setType(Cell.Type.Put).build());
|
||||||
WAL.Entry e = new WAL.Entry(new WALKeyImpl(HConstants.EMPTY_BYTE_ARRAY,
|
WAL.Entry e = new WAL.Entry(new WALKeyImpl(HConstants.EMPTY_BYTE_ARRAY,
|
||||||
TableName.valueOf("test"), -1), new WALEdit());
|
TableName.valueOf("test"), -1, -1, uuid), we);
|
||||||
assertTrue(wef.filter(e) == e);
|
assertTrue(wef.filter(e) == e);
|
||||||
// Test system WAL edit.
|
// Test system WAL edit.
|
||||||
e = new WAL.Entry(
|
e = new WAL.Entry(
|
||||||
new WALKeyImpl(HConstants.EMPTY_BYTE_ARRAY, TableName.META_TABLE_NAME, -1),
|
new WALKeyImpl(HConstants.EMPTY_BYTE_ARRAY, TableName.META_TABLE_NAME, -1, -1, uuid),
|
||||||
new WALEdit());
|
we);
|
||||||
assertNull(wef.filter(e));
|
assertNull(wef.filter(e));
|
||||||
} finally {
|
} finally {
|
||||||
rs.terminate("Done");
|
rs.terminate("Done");
|
||||||
|
@ -383,6 +390,10 @@ public class TestReplicationSource {
|
||||||
protected void doStop() {
|
protected void doStop() {
|
||||||
notifyStopped();
|
notifyStopped();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override public boolean canReplicateToSameCluster() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue