[ 
https://issues.apache.org/jira/browse/HBASE-11341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14032344#comment-14032344
 ] 

Matteo Bertozzi commented on HBASE-11341:
-----------------------------------------

[~jerryhe] not sure to follow, what is your point?

ZKProcedureCoordinatorRpcs is only on the master side
{noformat}
$ git grep "new ZKProcedureCoordinatorRpcs"
hbase/master/snapshot/SnapshotManager.java:    ProcedureCoordinatorRpcs comms = 
new ZKProcedureCoordinatorRpcs(
hbase/procedure/flush/MasterFlushTableProcedureManager.java:    
ProcedureCoordinatorRpcs comms = new ZKProcedureCoordinatorRpcs(
hbase/procedure/SimpleMasterProcedureManager.java:    ProcedureCoordinatorRpcs 
comms = new ZKProcedureCoordinatorRpcs(
{noformat}

and ZKProcedureCoordinatorRpcs.start() receives all the nodeCreate() events for 
all the procedure instances, so you get also the event of "new 
/procedure/<reached|acquired|abort>/instance" and not only the member events.
{code}
this.zkProc = new ZKProcedureUtil(watcher, procedureType) {
        @Override
        public void nodeCreated(String path) {
          if (!isInProcedurePath(path)) return;

          if (isAcquiredPathNode(path)) {
             ...
          } else if (isReachedPathNode(path)) {
             ...
{code}

> ZKProcedureCoordinatorRpcs should respond only to members
> ---------------------------------------------------------
>
>                 Key: HBASE-11341
>                 URL: https://issues.apache.org/jira/browse/HBASE-11341
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.99.0, 0.94.20, 0.98.3
>            Reporter: Matteo Bertozzi
>            Assignee: Matteo Bertozzi
>            Priority: Minor
>             Fix For: 0.99.0, 0.94.21, 0.98.4
>
>         Attachments: HBASE-11341-v0.patch
>
>
> ZKProcedureCoordinatorRpcs nodeCreated() responds to events of every znode 
> under the procedure and not only members.
> {code}
> INFO: Received created event: /hbase/<proc>/reached/<instance>
> INFO: Received created event: /hbase/<proc>/reached/<instance>/<member>
> {code}
> the result is a warning (no other side effects)
> {code}
> WARN [main-EventThread] procedure.ProcedureCoordinator: Member '<instance>' 
> is trying to release an unknown procedure 'reached
> {code}
> [~apurtell] posted in HBASE-10926 the steps to reproduce it:
> {noformat}
> $ cd ./src/hbase
> $ git checkout master
> $ mvn -DskipTests clean install
> {noformat}
> In one console:
> {noformat}
> $ ./bin/hbase master start
> {noformat}
> In another console:
> {noformat}
> $ ./bin/hbase org.apache.hadoop.hbase.util.LoadTestTool -num_keys 100000 \
>     -read 10:100 -write 1:100:10
> {noformat}
> In a third console:
> {noformat}
> $ ./bin/hbase shell
> hbase> while true do ; flush 'cluster_test' ; sleep 10 ; end
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to