java.lang.IllegalStateException: Error parsing query response (in TRANSITION) at " [ "Stefanie", "Papst", null, 0 ], "reservationId":", enable trace to see response content

Couchbase JIRA | Peter Rainer | 7 months ago
tip
Do you know that we can give you better hits? Get more relevant results from Samebug’s stack trace search.
  1. 0

    *After this error occurs I do have to reconnect to Couchbase (meaning restart my application) because all subsequent requests are either failing or timing out * Exception stack trace {noformat} 2016-08-04 13:27:09,586 TRACE [cb-io-1-3] c.c.c.c.e.q.QueryHandler [,,] [] [] [Slf4JLogger.java:75] "hotel::6::res::160", "reservationStatus": "Guaranteed", "roomNumber": "202" }, { "additionalGuests": [], "primaryGuest": [ "Kristian", "Ackerman", null, 0 ], "reservationId": "hotel::6::res::161", "reservationStatus": "Guaranteed", "roomNumber": "203" }, { "additionalGuests": [], "primaryGuest": [ "Robert", "Hoffmann", null, 0 ], "reservationId": "hotel::6::res::158", "reservationStatus": "Guaranteed", "roomNumber": "204" } ], "status": "success", "metrics": { "elapsedTime": "54.425982ms", "executionTime": "54.378654ms", "resultCount": 9, "resultSize": 2862, "sortCount": 9 } } [ () ] java.lang.IllegalStateException: Error parsing query response (in TRANSITION) at " [ "Stefanie", "Papst", null, 0 ], "reservationId":", enable trace to see response content at com.couchbase.client.core.endpoint.query.QueryHandler.transitionToNextToken(QueryHandler.java:443) at com.couchbase.client.core.endpoint.query.QueryHandler.parseQueryResponse(QueryHandler.java:363) at com.couchbase.client.core.endpoint.query.QueryHandler.decodeResponse(QueryHandler.java:230) at com.couchbase.client.core.endpoint.query.QueryHandler.decodeResponse(QueryHandler.java:70) at com.couchbase.client.core.endpoint.AbstractGenericHandler.decode(AbstractGenericHandler.java:229) at com.couchbase.client.deps.io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) at com.couchbase.client.deps.io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) at com.couchbase.client.deps.io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292) at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278) at com.couchbase.client.deps.io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:428) at com.couchbase.client.deps.io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:277) at com.couchbase.client.deps.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:264) at com.couchbase.client.deps.io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:243) at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292) at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278) at com.couchbase.client.deps.io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266) at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292) at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278) at com.couchbase.client.deps.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:962) at com.couchbase.client.deps.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:528) at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:485) at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:399) at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:371) at com.couchbase.client.deps.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) at com.couchbase.client.deps.io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) at java.lang.Thread.run(Thread.java:745) {noformat} com.couchbase.client.core.endpoint.query.QueryHandler - In the else clause the parsing fails if lastChunk is set to true and the current peek ends with one of my query fields. As far as I understand lastChunk indicates that it is the last HTTP chunk - but even in the last HTTP chunk there could be one or more peeks before the couchbase internal (i.e. "status" or "metrics") peeks. The full query result (run using CBQ web UI) is attached in the data.json file. {code:java} private byte transitionToNextToken(boolean lastChunk) { int endNextToken = findNextChar(responseContent, ':'); if (endNextToken < 0 && !lastChunk) { return queryParsingState; } if (endNextToken < 0 && lastChunk && queryParsingState >= QUERY_STATE_STATUS) { return QUERY_STATE_NO_INFO; } byte newState; ByteBuf peekSlice = responseContent.readSlice(endNextToken + 1); String peek = peekSlice.toString(CHARSET); if (peek.contains("\"signature\":")) { newState = QUERY_STATE_SIGNATURE; } else if (peek.endsWith("\"results\":")) { newState = QUERY_STATE_ROWS_DECIDE; } else if (peek.endsWith("\"status\":")) { newState = QUERY_STATE_STATUS; } else if (peek.endsWith("\"errors\":")) { newState = QUERY_STATE_ERROR; } else if (peek.endsWith("\"warnings\":")) { newState = QUERY_STATE_WARNING; } else if (peek.endsWith("\"metrics\":")) { newState = QUERY_STATE_INFO; } else { if (lastChunk) { IllegalStateException e = new IllegalStateException("Error parsing query response (in TRANSITION) at \"" + peek + "\", enable trace to see response content"); if (LOGGER.isTraceEnabled()) { LOGGER.trace(responseContent.toString(CHARSET), e); } throw e; } else { //we need more data return queryParsingState; } } sectionDone = false; return newState; } {code}

    Couchbase JIRA | 7 months ago | Peter Rainer
    java.lang.IllegalStateException: Error parsing query response (in TRANSITION) at " [ "Stefanie", "Papst", null, 0 ], "reservationId":", enable trace to see response content

    Root Cause Analysis

    1. java.lang.IllegalStateException

      Error parsing query response (in TRANSITION) at " [ "Stefanie", "Papst", null, 0 ], "reservationId":", enable trace to see response content

      at com.couchbase.client.core.endpoint.query.QueryHandler.transitionToNextToken()
    2. com.couchbase.client
      DefaultThreadFactory$DefaultRunnableDecorator.run
      1. com.couchbase.client.core.endpoint.query.QueryHandler.transitionToNextToken(QueryHandler.java:443)
      2. com.couchbase.client.core.endpoint.query.QueryHandler.parseQueryResponse(QueryHandler.java:363)
      3. com.couchbase.client.core.endpoint.query.QueryHandler.decodeResponse(QueryHandler.java:230)
      4. com.couchbase.client.core.endpoint.query.QueryHandler.decodeResponse(QueryHandler.java:70)
      5. com.couchbase.client.core.endpoint.AbstractGenericHandler.decode(AbstractGenericHandler.java:229)
      6. com.couchbase.client.deps.io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81)
      7. com.couchbase.client.deps.io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89)
      8. com.couchbase.client.deps.io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
      9. com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
      10. com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
      11. com.couchbase.client.deps.io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:428)
      12. com.couchbase.client.deps.io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:277)
      13. com.couchbase.client.deps.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:264)
      14. com.couchbase.client.deps.io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:243)
      15. com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
      16. com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
      17. com.couchbase.client.deps.io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266)
      18. com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
      19. com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
      20. com.couchbase.client.deps.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:962)
      21. com.couchbase.client.deps.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
      22. com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:528)
      23. com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:485)
      24. com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:399)
      25. com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:371)
      26. com.couchbase.client.deps.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
      27. com.couchbase.client.deps.io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
      27 frames
    3. Java RT
      Thread.run
      1. java.lang.Thread.run(Thread.java:745)
      1 frame