You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Enis Soztutar (JIRA)" <ji...@apache.org> on 2012/11/28 23:01:58 UTC

[jira] [Updated] (HBASE-7235) TestMasterObserver is flaky

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

Enis Soztutar updated HBASE-7235:
---------------------------------

    Attachment: hbase-7235_v1.patch

Patch for trunk. Applies to 0.94 with -p1. 
                
> TestMasterObserver is flaky
> ---------------------------
>
>                 Key: HBASE-7235
>                 URL: https://issues.apache.org/jira/browse/HBASE-7235
>             Project: HBase
>          Issue Type: Bug
>          Components: Coprocessors, master, test
>    Affects Versions: 0.96.0, 0.94.4
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>         Attachments: hbase-7235_v1.patch
>
>
> TestMasterObserver failed on windows builds at least a couple of times, although this is not windows specific. 
> Upon further inspection, it seems that we are affected by the race condition for the table operations.
> The handling of modify table occurs in its dedicated executor, MASTER_TABLE_OPERATIONS, and happens in async, although the handling of add/delete/modify columns are handled in the IPC handler thread. When we do not wait for the first modify table to finish, subsequent changes from the add/modify column operations are overriden by the earlier modify table executor.
> {code}
> at org.apache.hadoop.hbase.master.handler.TableEventHandler.hasColumnFamily(TableEventHandler.java:182)
> 	at org.apache.hadoop.hbase.master.handler.TableDeleteFamilyHandler.<init>(TableDeleteFamilyHandler.java:42)
> 	at org.apache.hadoop.hbase.master.HMaster.deleteColumn(HMaster.java:1255)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:364)
> 	at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1400)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> 	at org.apache.hadoop.hbase.RemoteExceptionHandler.decodeRemoteException(RemoteExceptionHandler.java:96)
> 	at org.apache.hadoop.hbase.client.HBaseAdmin.deleteColumn(HBaseAdmin.java:1024)
> 	at org.apache.hadoop.hbase.coprocessor.TestMasterObserver.testTableOperations(TestMasterObserver.java:616)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira