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

Todd Lipcon updated KUDU-2625:
------------------------------
    Priority: Critical  (was: Major)

Bumping priority here since I think this will be interpreted as data loss by a 
lot of users.

> Unexpected behavior of WriteBatch wrt rows violating schema constraints
> -----------------------------------------------------------------------
>
>                 Key: KUDU-2625
>                 URL: https://issues.apache.org/jira/browse/KUDU-2625
>             Project: Kudu
>          Issue Type: Bug
>          Components: tablet, tserver
>    Affects Versions: 0.5.0, 0.6.0, 0.7.0, 0.7.1, 0.8.0, 0.9.0, 0.9.1, 1.0.0, 
> 1.0.1, 1.1.0, 1.2.0, 1.3.0, 1.3.1, 1.4.0, 1.5.0, 1.6.0, 1.7.0, 1.8.0, 1.7.1
>            Reporter: Alexey Serbin
>            Priority: Critical
>         Attachments: example.cc
>
>
> While decoding write operation sent using {{WriteRequestPB}}, tablet servers 
> reject the whole batch if there is a row that violates table schema 
> constraints (e.g., presence of null values for non-nullable columns).  That 
> behavior is different from the case when errors happen at later stages of 
> 'applying' received write operations (e.g., a duplicate key error).  In most 
> cases, the user expects only 'bad' rows to be rejected, but in case of schema 
> violation constraints whole batch of operations received by a tablet server 
> is rejected.  Maybe, that behavior should be configurable, but at least there 
> should be an option to reject only the 'bad' rows and most likely that should 
> be the default.  Current behavior violates the [POLA 
> principle|https://en.wikipedia.org/wiki/Principle_of_least_astonishment] and 
> should be fixed.
>  
> A reproduction scenario in Groovy for the described behavior using Java Kudu 
> client is at 
> https://gist.github.com/boristyukin/8703d2c6ec55d6787843aa133920bf01
> Another reproduction scenario uses C++ client: see the attached 
> {{example.cc}} file.  The example can be compiled as an example C++ Kudu 
> client application; see instructions at 
> https://github.com/apache/kudu/blob/master/examples/cpp/README.adoc



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

Reply via email to