[
https://issues.apache.org/jira/browse/HBASE-21487?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16697219#comment-16697219
]
Syeda Arshiya Tabreen commented on HBASE-21487:
-----------------------------------------------
Issue is that new descriptor is being built before submitting the
ModifyTableProcedure in HMaster class.In order to maintain the consistency ,the
new descriptor can be built inside ModifyTableProcedure class but the class
expects new descriptor and also the coprocessor hooks are maintained in HMaster
class to which the solution cannot be met or should we make the design as like
earlier with many procedures(AddColumn/ModifyColumn/DeleteColumn) which will
solve the problem?
> 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. 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 depending
> on which ModifyTableProcedure executed finally.Its because new table
> descriptor is constructed before submitting the ModifyTableProcedure in
> HMaster class and its not guarded by any lock.
> *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)
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)