Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Empty get response throws exception #21

Closed
mick-h opened this issue Nov 26, 2014 · 5 comments
Closed

Empty get response throws exception #21

mick-h opened this issue Nov 26, 2014 · 5 comments

Comments

@mick-h
Copy link

mick-h commented Nov 26, 2014

If I issue the following query:

val result = r.db("dbName").table[User]("users").get(userid).run

where there is no record for userid, the following occurs:

16:48:06.792 [New I/O worker #6] ERROR c.r.net.JsonVersionHandler - Error in trying to handle token
scala.MatchError: null
at com.rethinkscala.net.JsonVersionHandler$$anonfun$handle$1.apply(VersionHandler.scala:88) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.JsonVersionHandler$$anonfun$handle$1.apply(VersionHandler.scala:88) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.VersionHandler$$anonfun$1.apply$mcV$sp(VersionHandler.scala:59) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.VersionHandler$$anonfun$1.apply(VersionHandler.scala:59) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.VersionHandler$$anonfun$1.apply(VersionHandler.scala:59) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at scala.util.Try$.apply(Try.scala:191) ~[scala-library-2.11.1.jar:0.13.5]
at com.rethinkscala.net.VersionHandler$class.handle(VersionHandler.scala:59) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.JsonVersionHandler.handle(VersionHandler.scala:79) [core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.JsonVersionHandler.handle(VersionHandler.scala:87) [core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.JsonVersionHandler.handle(VersionHandler.scala:79) [core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.ConnectionAttachment.handle(Connection.scala:48) [core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.RethinkChannelHandler$$anonfun$messageReceived$1.apply(Handler.scala:24) [core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.RethinkChannelHandler$$anonfun$messageReceived$1.apply(Handler.scala:24) [core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at scala.Option.map(Option.scala:145) [scala-library-2.11.1.jar:0.13.5]
at com.rethinkscala.net.RethinkChannelHandler.messageReceived(Handler.scala:24) [core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) [netty-3.9.3.Final.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
q: scala.util.Either[com.rethinkscala.net.RethinkError,models.messages.User] = Left(com.rethinkscala.net.RethinkRuntimeError: null)

scala> 16:48:06.797 [New I/O worker #6] ERROR c.r.net.JsonVersionHandler - UnCaught Exception token not resolved
scala.MatchError: null
at com.rethinkscala.net.JsonVersionHandler$$anonfun$handle$1.apply(VersionHandler.scala:88) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.JsonVersionHandler$$anonfun$handle$1.apply(VersionHandler.scala:88) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.VersionHandler$$anonfun$1.apply$mcV$sp(VersionHandler.scala:59) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.VersionHandler$$anonfun$1.apply(VersionHandler.scala:59) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.VersionHandler$$anonfun$1.apply(VersionHandler.scala:59) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at scala.util.Try$.apply(Try.scala:191) ~[scala-library-2.11.1.jar:0.13.5]
at com.rethinkscala.net.VersionHandler$class.handle(VersionHandler.scala:59) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.JsonVersionHandler.handle(VersionHandler.scala:79) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.JsonVersionHandler.handle(VersionHandler.scala:87) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.JsonVersionHandler.handle(VersionHandler.scala:79) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.ConnectionAttachment.handle(Connection.scala:48) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.RethinkChannelHandler$$anonfun$messageReceived$1.apply(Handler.scala:24) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at com.rethinkscala.net.RethinkChannelHandler$$anonfun$messageReceived$1.apply(Handler.scala:24) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at scala.Option.map(Option.scala:145) ~[scala-library-2.11.1.jar:0.13.5]
at com.rethinkscala.net.RethinkChannelHandler.messageReceived(Handler.scala:24) ~[core_2.11-0.4.6-SNAPSHOT.jar:0.4.6-SNAPSHOT]
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [netty-3.9.3.Final.jar:na]
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) [netty-3.9.3.Final.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]

It seems to be relatively benign, and it is happening on a separate thread.

@kclay
Copy link
Owner

kclay commented Nov 26, 2014

New snapshot up, let me know if it works out for you.

@mick-h
Copy link
Author

mick-h commented Nov 27, 2014

Keyston the exception is gone, but I think that this now causes the connection to not be returned to the pool.  Contrast this - a filtered search with no results:

2014-11-28 00:00:30,001 - [DEBUG] - com.rethinkscala.net.BlockingConnection$$anon$2(event-bus-responders-akka.actor.default-dispatcher-8) Writing WithFields(Filter(Table(users,None,Some(DB(notifications
))),FuncWrap(ScalaBooleanPredicate1()),Some(false)),WrappedArray(id, firstName, email))
2014-11-28 00:00:30,002 - [DEBUG] - com.rethinkscala.utils.SimpleConnectionPool(event-bus-responders-akka.actor.default-dispatcher-8) take connection with id (1)
2014-11-28 00:00:30,002 - [DEBUG] - com.rethinkscala.net.BlockingConnection$$anon$2(pool-44-thread-5) Logger already configured
2014-11-28 00:00:30,002 - [DEBUG] - com.rethinkscala.net.BlockingConnection$$anon$2(pool-44-thread-5) Received connection from pool
2014-11-28 00:00:30,074 - [DEBUG] - com.rethinkscala.net.BlockingConnection$$anon$2(pool-44-thread-5) Writing query
2014-11-28 00:00:30,117 - [DEBUG] - com.rethinkscala.net.JsonFrameDecoder(New I/O worker #10) Decoding Frame TOKEN = 2 LENGTH = 14
2014-11-28 00:00:30,117 - [DEBUG] - com.rethinkscala.net.JsonFrameDecoder(New I/O worker #10) JSON = {"t":2,"r":[]}
2014-11-28 00:00:30,397 - [DEBUG] - com.rethinkscala.net.BlockingConnection$$anon$2(pool-44-thread-3) Restoring connection (1)
2014-11-28 00:00:30,398 - [DEBUG] - com.rethinkscala.utils.SimpleConnectionPool(pool-44-thread-3) giveBack(connection:1)
2014-11-28 00:00:30,397 - [DEBUG] - com.rethinkscala.net.JsonVersionHandler(New I/O worker #10) Results = ()

with this - a primary key query for a non-existent key:

2014-11-28 00:00:31,023 - [DEBUG] - com.rethinkscala.net.BlockingConnection$$anon$2(event-bus-responders-akka.actor.default-dispatcher-10) Writing Get(Table(users,None,Some(DB(notifications))),5477206e712f1c230058824d)
2014-11-28 00:00:31,024 - [DEBUG] - com.rethinkscala.utils.SimpleConnectionPool(event-bus-responders-akka.actor.default-dispatcher-10) take connection with id (1)
2014-11-28 00:00:31,024 - [DEBUG] - com.rethinkscala.net.BlockingConnection$$anon$2(pool-44-thread-4) Logger already configured
2014-11-28 00:00:31,024 - [DEBUG] - com.rethinkscala.net.BlockingConnection$$anon$2(pool-44-thread-4) Received connection from pool
2014-11-28 00:00:31,025 - [DEBUG] - com.rethinkscala.net.BlockingConnection$$anon$2(pool-44-thread-4) Writing query
2014-11-28 00:00:31,027 - [DEBUG] - com.rethinkscala.net.JsonFrameDecoder(New I/O worker #10) Decoding Frame TOKEN = 3 LENGTH = 18
2014-11-28 00:00:31,027 - [DEBUG] - com.rethinkscala.net.JsonFrameDecoder(New I/O worker #10) JSON = {"t":1,"r":[null]}
2014-11-28 00:00:31,065 - [DEBUG] - com.rethinkscala.net.JsonVersionHandler(New I/O worker #10) Results = ()

In the second response JSON r is [null], whereas in the first response r was [].  In the second there is no restoring or giving back the connection.  As a result my pool is starved after I issue of these operations.

Hope this is enough info.

On 27 November 2014 at 2:50:29 am, Keyston (notifications@github.com) wrote:

New snapshot up, let me know if it works out for you.


Reply to this email directly or view it on GitHub.

@kclay
Copy link
Owner

kclay commented Nov 27, 2014

Wow how did I miss this one. Fixed logic for it.

@mick-h
Copy link
Author

mick-h commented Nov 27, 2014

Awesome.  Let me know when the snapshot’s up and I’ll give it a whirl.

On 28 November 2014 at 12:37:28 am, Keyston (notifications@github.com) wrote:

Wow how did I miss this one. Fixed logic for it.


Reply to this email directly or view it on GitHub.

@kclay
Copy link
Owner

kclay commented Nov 27, 2014

Its up

@kclay kclay closed this as completed Apr 22, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants