You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Josh Elser (JIRA)" <ji...@apache.org> on 2016/04/17 21:57:25 UTC

[jira] [Commented] (PHOENIX-2829) queryserver fails with InvalidProtocolBufferException when connecting from thinclient

    [ https://issues.apache.org/jira/browse/PHOENIX-2829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15244863#comment-15244863 ] 

Josh Elser commented on PHOENIX-2829:
-------------------------------------

Hi [~eric.daigneault]. Sorry you're running into this problem.

This exception is saying that the request which the Phoenix QueryServer received was incomplete. {{WireMessage}} is a "wrapper" around every request and response. For some reason, it reads like the message was truncated.

Sadly, I have no idea why you might be seeing this -- I never even run into a similar issue before. I'm not sure what I can recommend you try to debug it. Maybe try to start PQS locally and verify that it can work (or cannot) without traversing the network?

> queryserver fails with InvalidProtocolBufferException when connecting from thinclient
> -------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-2829
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2829
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.7.0
>         Environment: cluster on Ubuntu 14.04, client app on windows 7
> Hadoop 2.7.2, HBase 1.1.3 and Phoenix 4.7.0, cluster with 3 nodes
>            Reporter: Eric Daigneault
>
> Have a cluster of 3 nodes and was able to perform misc queries and yarn jobs on it using just HBase.  Installed Phoenix to get the SQL interface and all worked fine with the "fat" client jar in a simple eclipse app.
> Was also able to perform querries with SQuirreL and that same client jar without issues.
> I then tried the thin driver with the queryserver and was never able to get it to work.  Squirrel and the simple app return the same error as seen from the server's log (see panel below)
> The query server runs on the master node which contains the hbase region server and the environment variable HBASE_CONF_DIR is set to the folder containing hbase-site.xml and other hbase configurations.
> {noformat}
> java.lang.RuntimeException: org.apache.calcite.avatica.com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol message, the input ended unexpectedly in the middle of a field.  This could mean either that the input has been truncated or that an embedded message misreported its own length.                                                                                 
>         at org.apache.calcite.avatica.remote.AbstractHandler.apply(AbstractHandler.java:98)                                       
>         at org.apache.calcite.avatica.remote.ProtobufHandler.apply(ProtobufHandler.java:38)                                       
>         at org.apache.calcite.avatica.server.AvaticaProtobufHandler.handle(AvaticaProtobufHandler.java:68)                        
>         at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)                                               
>         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)                                         
>         at org.eclipse.jetty.server.Server.handle(Server.java:497)                                                                
>         at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)                                                      
>         at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:245)                                            
>         at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)                                             
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)                                       
>         at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)                                        
>         at java.lang.Thread.run(Thread.java:745)                                                                                  
> Caused by: org.apache.calcite.avatica.com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol message, the input ended unexpectedly in the middle of a field.  This could mean either that the input has been truncated or that an embedded message misreported its own length.                                                                                                  
>         at org.apache.calcite.avatica.com.google.protobuf.InvalidProtocolBufferException.truncatedMessage(InvalidProtocolBufferException.java:70)                                                                                                                   
>         at org.apache.calcite.avatica.com.google.protobuf.CodedInputStream.skipRawBytesSlowPath(CodedInputStream.java:1293)       
>         at org.apache.calcite.avatica.com.google.protobuf.CodedInputStream.skipRawBytes(CodedInputStream.java:1276)               
>         at org.apache.calcite.avatica.com.google.protobuf.CodedInputStream.skipField(CodedInputStream.java:197)                   
>         at org.apache.calcite.avatica.com.google.protobuf.CodedInputStream.skipMessage(CodedInputStream.java:273)                 
>         at org.apache.calcite.avatica.com.google.protobuf.CodedInputStream.skipField(CodedInputStream.java:200)                   
>         at org.apache.calcite.avatica.proto.Common$WireMessage.<init>(Common.java:11627)                                          
>         at org.apache.calcite.avatica.proto.Common$WireMessage.<init>(Common.java:11595)                                          
>         at org.apache.calcite.avatica.proto.Common$WireMessage$1.parsePartialFrom(Common.java:12061)                              
>         at org.apache.calcite.avatica.proto.Common$WireMessage$1.parsePartialFrom(Common.java:12055)                              
>         at org.apache.calcite.avatica.com.google.protobuf.AbstractParser.parsePartialFrom(AbstractParser.java:137)                
>         at org.apache.calcite.avatica.com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:168)                       
>         at org.apache.calcite.avatica.com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:180)                       
>         at org.apache.calcite.avatica.com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:185)                       
>         at org.apache.calcite.avatica.com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:49)                        
>         at org.apache.calcite.avatica.proto.Common$WireMessage.parseFrom(Common.java:11760)                                       
>         at org.apache.calcite.avatica.remote.ProtobufTranslationImpl.parseRequest(ProtobufTranslationImpl.java:236) 		
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)