Scanner.nextRows always times out

20 views
Skip to first unread message

David Weiser

unread,
Dec 6, 2016, 7:11:41 PM12/6/16
to Async HBase
Description:  I'm attempting to scan the first 20 rows of a table.  I expect that the rows are returned, but I *always* get a timeout error.

Settings: 
- Hbase 0.94 (cdh4.7.0)
- Asynchbase 1.7.0

Repro steps:

```scala
val tableName = "urls_table"
val client: HBaseClient = HBaseClientGetter.getInstance()
val scanner = client.newScanner(tableName)
val rows = scanner.nextRows(20).joinUninterruptibly(5000)
com.stumbleupon.async.TimeoutException: Timed out after 5000ms when joining Deferred@1176689(state=PAUSED, result=Deferred@954848960, callback=wakeup thread run-main-0, errback=wakeup thread run-main-0)
at com.stumbleupon.async.Deferred.doJoin(Deferred.java:1177)
at com.stumbleupon.async.Deferred.joinUninterruptibly(Deferred.java:1092)
at .<init>(<console>:36)
at .<clinit>(<console>)
at .<init>(<console>:7)
at .<clinit>(<console>)
at $print(<console>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:734)
at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:983)
at scala.tools.nsc.interpreter.IMain.loadAndRunReq$1(IMain.scala:573)
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:604)
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:568)
at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:760)
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:805)
at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:717)
at scala.tools.nsc.interpreter.ILoop.processLine$1(ILoop.scala:581)
at scala.tools.nsc.interpreter.ILoop.innerLoop$1(ILoop.scala:588)
at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:591)
at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:882)
at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:837)
at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:837)
at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:837)
at scala.tools.nsc.interpreter.ILoop.main(ILoop.scala:904)
at xsbt.ConsoleInterface.run(ConsoleInterface.scala:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:102)
at sbt.compiler.AnalyzingCompiler.console(AnalyzingCompiler.scala:77)
at sbt.Console.sbt$Console$$console0$1(Console.scala:23)
at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply$mcV$sp(Console.scala:24)
at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:24)
at sbt.Console$$anonfun$apply$2$$anonfun$apply$1.apply(Console.scala:24)
at sbt.Logger$$anon$4.apply(Logger.scala:90)
at sbt.TrapExit$App.run(TrapExit.scala:244)
at java.lang.Thread.run(Thread.java:745)
```

Here is the state of the scanner after I run the above:

```scala
scala> scanner
res20: org.hbase.async.Scanner = Scanner(table="urls_table", start_key="", stop_key="", columns={}, populate_blockcache=true, max_num_rows=20, max_num_kvs=4096, region=RegionInfo(table="urls_table", region_name="granary.staging.urls_to_rankings,,1479982541587.e363e33e658d3bd3001c71122fbc3574.", stop_key="/572328314107397534/nip/moc.tseretnip.www//:sptth"), filter=null, scanner_id=0x049D029146262A97)

scala> scanner.close
```

I can, though, do a `get`:

```scala
val get = new GetRequest(tableName, rowKey, "r", "")
get: org.hbase.async.GetRequest = GetRequest(table="urls_table", key="http://www.truecar.com/", family="r", qualifiers=[""], attempt=0, region=null)

scala> client.get(get).join(5000)
res22: java.util.ArrayList[org.hbase.async.KeyValue] = [KeyValue(key="http://www.truecar.com/", family="r", qualifier="", value="my data", timestamp=1480460116506)]
```

What am I missing?
Reply all
Reply to author
Forward
0 new messages