Skip to content

CallbackOverflowError with many tag values #839

@bstoll

Description

@bstoll

I have a metric with 2 tags and 300 * 300 tag values. An API query that returns all of these tag values runs into a callback overflow exception. I've seen this with 2.2/2.3RC1/next.

00:04:32.993 INFO  [QueryStats.<init>] - Executing new query={"query":{"start":"1468642762","end":"1468729162","timezone":null,"options":null,"padding":false,"queries":[{"aggregator":"avg","metric":"test.bug","tsuids":null,"downsample":null,"rate":true,"filters":[{"tagk":"tag1","filter":"*","group_by":true,"type":"wildcard"},{"tagk":"tag2","filter":"*","group_by":true,"type":"wildcard"}],"index":0,"rateOptions":{"counter":false,"dropResets":false,"counterMax":9223372036854775807,"resetValue":0},"filterTagKs":[],"explicitTags":false,"tags":{"tag1":"wildcard(*)","tag2":"wildcard(*)"}}],"delete":false,"noAnnotations":false,"globalAnnotations":false,"showTSUIDs":false,"msResolution":false,"showQuery":false,"showStats":false,"showSummary":false,"useCalendar":false},"exception":"null","executed":1,"user":null,"requestHeaders":{"Origin":"file://","Cache-Control":"no-cache","Accept":"*/*","Connection":"keep-alive","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Postman/4.4.2 Chrome/51.0.2704.103 Electron/1.2.5 Safari/537.36","Host":"1.1.1.1:4242","Postman-Token":"d70a9c15-c63d-c6fb-7474-75d6c05e4ba7","Accept-Encoding":"gzip, deflate","Accept-Language":"en-US","Content-Length":"722","Content-Type":"text/plain;charset=UTF-8"},"numRunningQueries":6,"httpResponse":null,"queryStartTimestamp":1468731872992,"queryCompletedTimestamp":0,"sentToClient":false,"stats":{}}

00:04:33.688 ERROR [RegionClient.exceptionCaught] - Unexpected exception from downstream on [id: 0x3139ea25, /10.0.0.2:48400 => /10.0.0.3:60020]
com.stumbleupon.async.CallbackOverflowError: Too many callbacks in Deferred@811087221(state=PENDING, result=null, callback=net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@3467b7a6 -> net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@71653f4e -> net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@315c24d8 -> net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@405e4c1b -> net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@498d0931 -> net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@114ac001 -> net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@41e04c14 -> net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@73eceea7 -> net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@5289a56a -> net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@15043df2 -> net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@56c753aa -> net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@424a1603 -> net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@5d7749d5 -> net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@69a81424 ....(size=16383) when attempting to add cb=net.opentsdb.tsd.HttpJsonSerializer$1DPsResolver@31ad1009@833425417, eb=passthrough@922150289
    at com.stumbleupon.async.Deferred.addCallbacks(Deferred.java:669) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.Deferred.addCallback(Deferred.java:724) ~[async-1.4.0.jar:na]
    at net.opentsdb.tsd.HttpJsonSerializer.formatQueryAsyncV1(HttpJsonSerializer.java:874) ~[tsdb-2.3.0-RC1.jar:]
    at net.opentsdb.tsd.QueryRpc$1QueriesCB.call(QueryRpc.java:260) ~[tsdb-2.3.0-RC1.jar:]
    at net.opentsdb.tsd.QueryRpc$1QueriesCB.call(QueryRpc.java:231) ~[tsdb-2.3.0-RC1.jar:]
    at com.stumbleupon.async.Deferred.doCall(Deferred.java:1278) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.Deferred.runCallbacks(Deferred.java:1257) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.Deferred.callback(Deferred.java:1005) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.DeferredGroup.done(DeferredGroup.java:173) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.DeferredGroup.recordCompletion(DeferredGroup.java:158) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.DeferredGroup.access$200(DeferredGroup.java:36) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.DeferredGroup$1NotifyOrdered.call(DeferredGroup.java:97) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.Deferred.doCall(Deferred.java:1278) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.Deferred.runCallbacks(Deferred.java:1257) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.Deferred.callback(Deferred.java:1005) ~[async-1.4.0.jar:na]
    at net.opentsdb.core.TsdbQuery$1ScannerCB.close(TsdbQuery.java:873) ~[tsdb-2.3.0-RC1.jar:]
    at net.opentsdb.core.TsdbQuery$1ScannerCB.call(TsdbQuery.java:633) ~[tsdb-2.3.0-RC1.jar:]
    at net.opentsdb.core.TsdbQuery$1ScannerCB.call(TsdbQuery.java:575) ~[tsdb-2.3.0-RC1.jar:]
    at com.stumbleupon.async.Deferred.doCall(Deferred.java:1278) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.Deferred.runCallbacks(Deferred.java:1257) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.Deferred.access$300(Deferred.java:430) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.Deferred$Continue.call(Deferred.java:1366) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.Deferred.doCall(Deferred.java:1278) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.Deferred.runCallbacks(Deferred.java:1257) ~[async-1.4.0.jar:na]
    at com.stumbleupon.async.Deferred.callback(Deferred.java:1005) ~[async-1.4.0.jar:na]
    at org.hbase.async.HBaseRpc.callback(HBaseRpc.java:698) ~[asynchbase-1.7.1.jar:na]
    at org.hbase.async.RegionClient.decode(RegionClient.java:1516) ~[asynchbase-1.7.1.jar:na]
    at org.hbase.async.RegionClient.decode(RegionClient.java:88) ~[asynchbase-1.7.1.jar:na]
    at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500) ~[netty-3.9.4.Final.jar:na]
    at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435) ~[netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) [netty-3.9.4.Final.jar:na]
    at org.hbase.async.RegionClient.handleUpstream(RegionClient.java:1206) ~[asynchbase-1.7.1.jar:na]
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.SimpleChannelHandler.messageReceived(SimpleChannelHandler.java:142) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.handler.timeout.IdleStateAwareChannelHandler.handleUpstream(IdleStateAwareChannelHandler.java:36) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.handler.timeout.IdleStateHandler.messageReceived(IdleStateHandler.java:294) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) [netty-3.9.4.Final.jar:na]
    at org.hbase.async.HBaseClient$RegionClientPipeline.sendUpstream(HBaseClient.java:3108) [asynchbase-1.7.1.jar:na]
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [netty-3.9.4.Final.jar:na]
    at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) [netty-3.9.4.Final.jar:na]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_91]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_91]
    at java.lang.Thread.run(Unknown Source) [na:1.8.0_91]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions