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

ASF GitHub Bot commented on TRAFODION-3236:
-------------------------------------------

Github user DaveBirdsall commented on a diff in the pull request:

    https://github.com/apache/trafodion/pull/1748#discussion_r236024891
  
    --- Diff: core/sqf/src/tm/tm.cpp ---
    @@ -2789,7 +2789,7 @@ void tm_process_msg(BMS_SRE *pp_sre)
     {
         short                  lv_ret;
         char                   la_send_buffer[4096];
    -    char                   la_recv_buffer[sizeof(Tm_Req_Msg_Type)];
    +    char                   la_recv_buffer[pp_sre->sre_reqDataSize];
    --- End diff --
    
    It is not obvious to me why this change solves the problem. For example, at 
line 2808 below, we check pp_src->src_reqDataSize to see if it is too big to 
fit in la_recv_buffer, and if so, we dynamically allocate a buffer 
la_recv_buffer_ddl for it. It looks like the remaining code in the method makes 
assumptions that certain message types are always shorter than 
sizeof(Tm_Req_Msg_Type) though; but then the logic would read the message into 
the wrong buffer and it would fail in some other way. Could you provide an 
explanation of why it solves the problem?
    
    Also, I'm wondering if we could get rid of dynamically allocating 
la_recv_buffer_ddl and just use la_recv_buffer, by using dynamic array sizing 
as you have done here. That would simplify the logic and reduce heap pressure.
    
    @zcorrea, what do you think?


> Create table failed due to an exception of java IO from HBase
> -------------------------------------------------------------
>
>                 Key: TRAFODION-3236
>                 URL: https://issues.apache.org/jira/browse/TRAFODION-3236
>             Project: Apache Trafodion
>          Issue Type: Bug
>          Components: dtm
>    Affects Versions: 2.2.0
>            Reporter: Guo Heng
>            Assignee: Guo Heng
>            Priority: Major
>
>     DDL statement:
>         CREATE TABLE DW_UNIFORM_USER_INFO_MM_YYYYMM_TEST005
>         ( 
>             USER_ID VARCHAR(128 CHARS) CHARACTER SET UTF8 COLLATE DEFAULT NO 
> DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED,
>             CUST_ID VARCHAR(128 CHARS) CHARACTER SET UTF8 COLLATE DEFAULT 
> DEFAULT NULL NOT SERIALIZED,
>             PRODUCT_NO VARCHAR(128 CHARS) CHARACTER SET UTF8 COLLATE DEFAULT 
> NO DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
>           , COUNTY_ID VARCHAR(128 CHARS) CHARACTER SET UTF8 COLLATE DEFAULT 
> NO DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
>           , COUNTY_NAME VARCHAR(128 CHARS) CHARACTER SET UTF8 COLLATE DEFAULT 
> NO DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
>           , MONTH_ID VARCHAR(128 CHARS) CHARACTER SET UTF8 COLLATE DEFAULT NO 
> DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
>           , YYS VARCHAR(128 CHARS) CHARACTER SET UTF8 COLLATE DEFAULT NO 
> DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
>           , PRIMARY KEY (COUNTY_ID ASC, COUNTY_NAME ASC, PRODUCT_NO ASC, 
> USER_ID ASC, YYS ASC, MONTH_ID ASC)
>         )
>        SALT USING 88 PARTITIONS on(COUNTY_ID, MONTH_ID, PRODUCT_NO,USER_ID);
>        Execute this SQL in Trafci, and you can encounter the error:
>                 *** ERROR[29157] Server aborted abnormally or Connection 
> timed out
>                 *** ERROR[29160] The message header was not long enough
>                 *** ERROR[29157] Server aborted abnormally or Connection 
> timed out
>                 *** ERROR[29160] The message header was not long enough    
>         and error message in mxosrvr log:
>                 2018-11-09 14:11:27,151, ERROR, SQL.HBase, Node Number: 0, 
> CPU: 0, PIN: 31813, Process Name: $Z000QYY,,,Java exception in file 
> ../executor/HBaseClient_JNI.cpp, line 600.
>                 2018-11-09 14:11:27,151, ERROR, SQL.HBase, Node Number: 0, 
> CPU: 0, PIN: 31813, Process Name: $Z000QYY,,,HBaseClient_JNI::create() error: 
> java.io.IOException: createTable exception. 
>                                                           Unable to create 
> table TRAF_RSRVD_3:TRAFODION.SEABASE.DW_UNIFORM_USER_INFO_MM_YYYYMM_TEST005 
> Reason: Create Table failed. Error is Unknown
>  
>         and error message in HBase log:
>                 2018-10-29 23:05:32,030 INFO  
> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] server.NIOServerCnxnFactory: 
> Accepted socket connection from /0:0:0:0:0:0:0:1:60268
>                 2018-10-29 23:05:32,036 INFO  
> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] server.ZooKeeperServer: Client 
> attempting to establish new session at /0:0:0:0:0:0:0:1:60268
>                 2018-10-29 23:05:32,038 INFO  [SyncThread:0] 
> server.ZooKeeperServer: Established session 0x166c05abbc50009 with negotiated 
> timeout 40000 for client /0:0:0:0:0:0:0:1:60268
>                 2018-10-29 23:05:33,253 WARN  
> [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] server.NIOServerCnxn: caught end 
> of stream exception
>                 EndOfStreamException: Unable to read additional data from 
> client sessionid 0x166c05abbc50009, likely client has closed socket
>                         at 
> org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:220)
>                         at 
> org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208)
>                         at java.lang.Thread.run(Thread.java:745)
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to