[ https://issues.apache.org/jira/browse/HBASE-13415?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15086529#comment-15086529 ]
Hudson commented on HBASE-13415: -------------------------------- FAILURE: Integrated in HBase-1.1-JDK7 #1634 (See [https://builds.apache.org/job/HBase-1.1-JDK7/1634/]) HBASE-13415 Procedure V2 - Use nonces for double submits from client (syuanjiangdev: rev 0c900fe7eebf5d5253c4f2bf69f04127dcf0c80a) * hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/Procedure.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestProcedureConf.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManagerOnCluster.java * hbase-protocol/src/main/protobuf/Master.proto * hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestEnableTableProcedure.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTruncateTableProcedure.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestModifyTableProcedure.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestModifyColumnFamilyProcedure.java * hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ServerNonceManager.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestAddColumnFamilyProcedure.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestDeleteTableProcedure.java * hbase-common/src/main/java/org/apache/hadoop/hbase/util/NonceKey.java * hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterServices.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestCreateTableProcedure.java * hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java * hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.java * hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureResult.java * hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.java * hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProtos.java * hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java * hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java * hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/ProcedureProtos.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestDisableTableProcedure.java * hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestHBaseAdminNoCluster.java * hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java * hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java * hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestDeleteColumnFamilyProcedure.java * hbase-protocol/src/main/protobuf/Procedure.proto > Procedure V2 - Use nonces for double submits from client > -------------------------------------------------------- > > Key: HBASE-13415 > URL: https://issues.apache.org/jira/browse/HBASE-13415 > Project: HBase > Issue Type: Sub-task > Components: master > Reporter: Enis Soztutar > Assignee: Stephen Yuan Jiang > Priority: Blocker > Fix For: 2.0.0, 1.2.0, 1.3.0, 1.1.3 > > Attachments: HBASE-13415.v1-branch-1.1.patch, > HBASE-13415.v1-master.patch, HBASE-13415.v2-master.patch, > HBASE-13415.v3-master.patch > > > The client can submit a procedure, but before getting the procId back, the > master might fail. In this case, the client request will fail and the client > will re-submit the request. If 1.1 client or if there is no contention for > the table lock, the time window is pretty small, but still might happen. > If the proc was accepted and stored in the procedure store, a re-submit from > the client will add another procedure, which will execute after the first > one. The first one will likely succeed, and the second one will fail (for > example in the case of create table, the second one will throw > TableExistsException). > One idea is to use client generated nonces (that we already have) to guard > against these cases. The client will submit the request with the nonce and > the nonce will be saved together with the procedure in the store. In case of > a double submit, the nonce-cache is checked and the procId of the original > request is returned. -- This message was sent by Atlassian JIRA (v6.3.4#6332)