You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Syeda Arshiya Tabreen (JIRA)" <ji...@apache.org> on 2018/11/16 12:06:00 UTC

[jira] [Updated] (HBASE-21487) Concurrent modify table ops can lead to unexpected results

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

Syeda Arshiya Tabreen updated HBASE-21487:
------------------------------------------
    Description: 
Concurrent  modifyTable or add/delete/modify columnFamily leads to incorrect result 
*Steps to reproduce*

1.Create table 't' with column family 'f1'
2.Client-1 and Client-2 requests to add column family 'f2' and 'f3' on table 't' concurrently.

Expected Result
Table should have three column families(f1,f2,f3)

*Actual Result*
Table 't' will have column family either (f1,f2) or (f1,f3)

*Analysis/Issue*
After HBASE-18893, The behavior of add/delete/modify column family during concurrent operation is changed compare to branch-1

When  one client is adding cf2 and another one cf3 .. In branch-1 final result will be cf1,cf2,cf3 but now either cf1,cf2 OR cf1,cf3 will be the outcome.

Its because new table descriptor is constructed before submitting the modifyTableProcedure in HMaster class and its not guarded by any lock.

Is this the intended behavior?


> Concurrent modify table ops can lead to unexpected results
> ----------------------------------------------------------
>
>                 Key: HBASE-21487
>                 URL: https://issues.apache.org/jira/browse/HBASE-21487
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 3.0.0, 2.0.0
>            Reporter: Syeda Arshiya Tabreen
>            Priority: Major
>
> Concurrent  modifyTable or add/delete/modify columnFamily leads to incorrect result 
> *Steps to reproduce*
> 1.Create table 't' with column family 'f1'
> 2.Client-1 and Client-2 requests to add column family 'f2' and 'f3' on table 't' concurrently.
> Expected Result
> Table should have three column families(f1,f2,f3)
> *Actual Result*
> Table 't' will have column family either (f1,f2) or (f1,f3)
> *Analysis/Issue*
> After HBASE-18893, The behavior of add/delete/modify column family during concurrent operation is changed compare to branch-1
> When  one client is adding cf2 and another one cf3 .. In branch-1 final result will be cf1,cf2,cf3 but now either cf1,cf2 OR cf1,cf3 will be the outcome.
> Its because new table descriptor is constructed before submitting the modifyTableProcedure in HMaster class and its not guarded by any lock.
> Is this the intended behavior?



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