[ 
https://issues.apache.org/jira/browse/KUDU-1743?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexey Serbin updated KUDU-1743:
--------------------------------
    Fix Version/s: 1.1.0

fixed in 1.1.0: b9aa20603e8d6290e817e92175f1e082136d44e8

> GetPendingErrors() not returning all errors after Flush()
> ---------------------------------------------------------
>
>                 Key: KUDU-1743
>                 URL: https://issues.apache.org/jira/browse/KUDU-1743
>             Project: Kudu
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 1.0.0
>            Reporter: Matthew Jacobs
>            Assignee: Alexey Serbin
>            Priority: Critical
>             Fix For: 1.1.0, 1.2.0
>
>
> We observed the following incorrect behavior of reporting errors in a 
> KuduSession when using AUTO_FLUSH_BACKGROUND:
> 1. A client writes 2363 rows to a table, and 39 of those rows have PKs that 
> already exist so should return duplicate key error. All rows are applied to 
> the session.
> 2. The client calls Flush().
>     *expectation*: All outstanding operations should wait until they complete 
> successfully or an error occurs, in which case the error is reported in 
> GetPendingErrors()
> 3. The client calls  KuduSession::GetPendingErrors() and observes 38 errors.
> I identified this using logging from an Impala daemon:
> Impala logs some information, as well as output from the Kudu client. In it, 
> I can see that batcher.cc reports 38 errors, then Impala calls 
> GetPendingErrors() and indicates there were 38 errors, and this Impala 
> logging only occurs after the last Flush() call. However, during the course 
> of Impala handling those 38 errors, batcher.cc reports one more error but 
> this was already after the last Flush() call so Impala wouldn't expect to 
> have to call GetPendingErrors() again.
> Here's the relevant log snippet:
> {noformat}
> ...
> #### total of 38 of these batcher.cc errors, only 1 shown
> I1109 01:04:13.847666 23365 batcher.cc:757] Error on op INSERT int32 id=94, 
> bool bool_col=true, int8 tinyint_col=4, int16 smallint_col=4, int32 
> int_col=4, int64 bigint_col=40, float float_col=4.4, double double_col=40.4, 
> string date_string_col=01/10/09, string string_col=4, string 
> timestamp_col=2009-01-10 01:34:04.110000000, int32 year=2009, int32 month=1: 
> code: ALREADY_PRESENT message: "key already present"
> #### Impala logging occurs after the Flush() call returns, at which point it 
> fetches the pending errors, logs them and shuts down the session. There are a 
> total of 38 of these errors:
> I1109 01:04:13.848956 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.849195 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.849400 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.849617 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.849817 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.850013 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.850211 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.850436 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.850641 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.850831 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.851024 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.851232 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.851449 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.851647 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.851841 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> I1109 01:04:13.852088 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> #### the batcher.cc reports one more error mid way through that will never be 
> seen by Impala:
> I1109 01:04:13.852166 23365 batcher.cc:757] Error on op INSERT int32 id=97, 
> bool bool_col=false, int8 tinyint_col=7, int16 smallint_col=7, int32 
> int_col=7, int64 bigint_col=70, float float_col=7.7, double double_col=70.7, 
> string date_string_col=01/10/09, string string_col=7, string 
> timestamp_col=2009-01-10 01:37:04.260000000, int32 year=2009, int32 month=1: 
> code: ALREADY_PRESENT message: "key already present"
> I1109 01:04:13.852283 23325 runtime-state.cc:208] Error from query 
> 3840a50eed6a1429:88d4a4e700000000: Key already present in Kudu table 
> 'impala::test_kudu_crud_fe258600.kudu_test_tbl'.
> ...
> {noformat}



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

Reply via email to