You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by GitBox <gi...@apache.org> on 2020/08/07 03:25:31 UTC

[GitHub] [incubator-doris] vagetablechicken commented on issue #3504: BE crashed when run TPC-DS test

vagetablechicken commented on issue #3504:
URL: https://github.com/apache/incubator-doris/issues/3504#issuecomment-670300596


   ### The crash plan fragment's log
   ```
   plan_root=
    conjuncts=[] id=4 type=ASSERT_NUM_ROWS_NODE tuple_ids=[5, ]
     ExchangeNode(#senders=4 conjuncts=[] id=28 type=EXCHANGE_NODE tuple_ids=[6, ])
   ```
   
   Then I print the log below.
   https://github.com/apache/incubator-doris/blob/eefad13107ac74a406212e0f0f57181973ac9c1e/be/src/exec/exec_node.cpp#L340
   
   log in creating ASSERT_NUM_ROWS_NODE:
   ```
   TPlanNode {
     01: node_id (i32) = 4,
     02: node_type (i32) = 23,
     03: num_children (i32) = 1,
     04: limit (i64) = -1,
     05: row_tuples (list) = list<i32>[1] {
       [0] = 5,
     },
     06: nullable_tuples (list) = list<bool>[1] {
       [0] = false,
     },
     08: compact_data (bool) = false,
     32: assert_num_rows_node (struct) = TAssertNumRowsNode {
       01: desired_num_rows (i64) = 1,
       02: subquery_string (string) = "SELECT avg(`ss_net_profit`) AS `rank_col` FROM `default_cluster:tpcds`.`store_sales` WHERE (`ss_store_sk` = 4) AND (`ss_addr_sk` IS NULL) GROUP BY `ss_store_sk`",
     },
   }
   ```
   log in createing the child ExchangeNode:
   ```
   TPlanNode {
     01: node_id (i32) = 28,
     02: node_type (i32) = 9,
     03: num_children (i32) = 0,
     04: limit (i64) = -1,
     05: row_tuples (list) = list<i32>[1] {
       [0] = 6,
     },
     06: nullable_tuples (list) = list<bool>[1] {
       [0] = false,
     },
     08: compact_data (bool) = false,
     15: exchange_node (struct) = TExchangeNode {
       01: input_row_tuples (list) = list<i32>[1] {
         [0] = 6,
       },
     },
   }
   ```
   
   The AssertNumRowsNode get batch from its child,  but its row_tuples id is 6.
   Then it has a sink node, the sink node use the same row_tuples id as root plan node(AssertNumRowsNode), so it is 5.
   
   Thus, the sink node use `Tuple(id=5 size=24 slots=[Slot(id=12 type=INT col=-1 offset=4 null=(offset=0 mask=80)), Slot(id=13 type=VARCHAR col=-1 offset=8 null=(offset=0 mask=40))] has_varlen_slots=1)` to parse data created in `Tuple(id=6 size=24 slots=[Slot(id=14 type=INT col=-1 offset=4 null=(offset=0 mask=80)), Slot(id=15 type=DECIMALV2(9, 0) col=-1 offset=8 null=(offset=0 mask=40))] has_varlen_slots=0)`
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org