You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by se...@apache.org on 2013/07/16 01:31:11 UTC
svn commit: r1503522 - in /hbase/branches/0.94/src:
main/java/org/apache/hadoop/hbase/mapreduce/
main/java/org/apache/hadoop/hbase/regionserver/
test/java/org/apache/hadoop/hbase/test/
Author: sershe
Date: Mon Jul 15 23:31:10 2013
New Revision: 1503522
URL: http://svn.apache.org/r1503522
Log:
HBASE-8935 IntegrationTestBigLinkedList fails under load on 0.94 due to some scan issues - add logging
Modified:
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java?rev=1503522&r1=1503521&r2=1503522&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.java Mon Jul 15 23:31:10 2013
@@ -46,7 +46,7 @@ public class TableRecordReaderImpl {
public static final String LOG_PER_ROW_COUNT
= "hbase.mapreduce.log.scanner.rowcount";
- static final Log LOG = LogFactory.getLog(TableRecordReader.class);
+ static final Log LOG = LogFactory.getLog(TableRecordReaderImpl.class);
// HBASE_COUNTER_GROUP_NAME is the name of mapreduce counter group for HBase
private static final String HBASE_COUNTER_GROUP_NAME =
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=1503522&r1=1503521&r2=1503522&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Mon Jul 15 23:31:10 2013
@@ -2592,7 +2592,10 @@ public class HRegionServer implements HR
public Result[] next(final long scannerId, int nbRows) throws IOException {
String scannerName = String.valueOf(scannerId);
RegionScanner s = this.scanners.get(scannerName);
- if (s == null) throw new UnknownScannerException("Name: " + scannerName);
+ if (s == null) {
+ LOG.info("Client tried to access missing scanner " + scannerName);
+ throw new UnknownScannerException("Name: " + scannerName);
+ }
try {
checkOpen();
} catch (IOException e) {
@@ -2610,7 +2613,13 @@ public class HRegionServer implements HR
try {
// Remove lease while its being processed in server; protects against case
// where processing of request takes > lease expiration time.
- lease = this.leases.removeLease(scannerName);
+ try {
+ lease = this.leases.removeLease(scannerName);
+ } catch (LeaseException le) {
+ // What it really means is that there's no such scanner.
+ LOG.info("Client tried to access missing scanner " + scannerName + " (no lease)");
+ throw new UnknownScannerException("No lease for " + scannerName + ": " + le.getMessage());
+ }
List<Result> results = new ArrayList<Result>(nbRows);
long currentScanResultSize = 0;
List<KeyValue> values = new ArrayList<KeyValue>();
Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java?rev=1503522&r1=1503521&r2=1503522&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java Mon Jul 15 23:31:10 2013
@@ -52,9 +52,11 @@ import org.apache.hadoop.hbase.client.Pu
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
+import org.apache.hadoop.hbase.client.ScannerCallable;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;
import org.apache.hadoop.hbase.mapreduce.TableMapper;
+import org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.NullWritable;
@@ -626,6 +628,8 @@ public class IntegrationTestBigLinkedLis
job.setNumReduceTasks(numReducers);
job.setJarByClass(getClass());
+ setJobScannerConf(job);
+
Scan scan = new Scan();
scan.addColumn(FAMILY_NAME, COLUMN_PREV);
scan.setCaching(10000);
@@ -1081,4 +1085,10 @@ public class IntegrationTestBigLinkedLis
job.getConfiguration().setInt(GENERATOR_WRAP_KEY, wrapMuplitplier.intValue());
}
}
+
+ private static void setJobScannerConf(Job job) {
+ // Make sure scanners log something useful to make debugging possible.
+ job.getConfiguration().setBoolean(ScannerCallable.LOG_SCANNER_ACTIVITY, true);
+ job.getConfiguration().setInt(TableRecordReaderImpl.LOG_PER_ROW_COUNT, 100000);
+ }
}