http://git-wip-us.apache.org/repos/asf/hbase-site/blob/464fda73/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangOnCloseThenRSCrashExecutor.html ---------------------------------------------------------------------- diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangOnCloseThenRSCrashExecutor.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangOnCloseThenRSCrashExecutor.html index 42507a2..8b6dda3 100644 --- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangOnCloseThenRSCrashExecutor.html +++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangOnCloseThenRSCrashExecutor.html @@ -773,96 +773,100 @@ <span class="sourceLineNo">765</span> case 0: throw new ServerNotRunningYetException("wait on server startup");<a name="line.765"></a> <span class="sourceLineNo">766</span> case 1: throw new SocketTimeoutException("simulate socket timeout");<a name="line.766"></a> <span class="sourceLineNo">767</span> case 2: throw new RemoteException("java.io.IOException", "unexpected exception");<a name="line.767"></a> -<span class="sourceLineNo">768</span> }<a name="line.768"></a> -<span class="sourceLineNo">769</span> return super.sendRequest(server, req);<a name="line.769"></a> -<span class="sourceLineNo">770</span> }<a name="line.770"></a> -<span class="sourceLineNo">771</span><a name="line.771"></a> -<span class="sourceLineNo">772</span> @Override<a name="line.772"></a> -<span class="sourceLineNo">773</span> protected RegionOpeningState execOpenRegion(final ServerName server, RegionOpenInfo openReq)<a name="line.773"></a> -<span class="sourceLineNo">774</span> throws IOException {<a name="line.774"></a> -<span class="sourceLineNo">775</span> switch (rand.nextInt(6)) {<a name="line.775"></a> -<span class="sourceLineNo">776</span> case 0:<a name="line.776"></a> -<span class="sourceLineNo">777</span> LOG.info("Return OPENED response");<a name="line.777"></a> -<span class="sourceLineNo">778</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.778"></a> -<span class="sourceLineNo">779</span> return OpenRegionResponse.RegionOpeningState.OPENED;<a name="line.779"></a> -<span class="sourceLineNo">780</span> case 1:<a name="line.780"></a> -<span class="sourceLineNo">781</span> LOG.info("Return transition report that OPENED/ALREADY_OPENED response");<a name="line.781"></a> -<span class="sourceLineNo">782</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.782"></a> -<span class="sourceLineNo">783</span> return OpenRegionResponse.RegionOpeningState.ALREADY_OPENED;<a name="line.783"></a> -<span class="sourceLineNo">784</span> case 2:<a name="line.784"></a> -<span class="sourceLineNo">785</span> LOG.info("Return transition report that FAILED_OPEN/FAILED_OPENING response");<a name="line.785"></a> -<span class="sourceLineNo">786</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.FAILED_OPEN);<a name="line.786"></a> -<span class="sourceLineNo">787</span> return OpenRegionResponse.RegionOpeningState.FAILED_OPENING;<a name="line.787"></a> -<span class="sourceLineNo">788</span> }<a name="line.788"></a> -<span class="sourceLineNo">789</span> // The procedure on master will just hang forever because nothing comes back<a name="line.789"></a> -<span class="sourceLineNo">790</span> // from the RS in this case.<a name="line.790"></a> -<span class="sourceLineNo">791</span> LOG.info("Return null as response; means proc stuck so we send in a crash report after a few seconds...");<a name="line.791"></a> -<span class="sourceLineNo">792</span> executor.schedule(new Runnable() {<a name="line.792"></a> -<span class="sourceLineNo">793</span> @Override<a name="line.793"></a> -<span class="sourceLineNo">794</span> public void run() {<a name="line.794"></a> -<span class="sourceLineNo">795</span> LOG.info("Delayed CRASHING of " + server);<a name="line.795"></a> -<span class="sourceLineNo">796</span> doCrash(server);<a name="line.796"></a> -<span class="sourceLineNo">797</span> }<a name="line.797"></a> -<span class="sourceLineNo">798</span> }, 5, TimeUnit.SECONDS);<a name="line.798"></a> -<span class="sourceLineNo">799</span> return null;<a name="line.799"></a> -<span class="sourceLineNo">800</span> }<a name="line.800"></a> -<span class="sourceLineNo">801</span><a name="line.801"></a> -<span class="sourceLineNo">802</span> @Override<a name="line.802"></a> -<span class="sourceLineNo">803</span> protected CloseRegionResponse execCloseRegion(ServerName server, byte[] regionName)<a name="line.803"></a> -<span class="sourceLineNo">804</span> throws IOException {<a name="line.804"></a> -<span class="sourceLineNo">805</span> CloseRegionResponse.Builder resp = CloseRegionResponse.newBuilder();<a name="line.805"></a> -<span class="sourceLineNo">806</span> boolean closed = rand.nextBoolean();<a name="line.806"></a> -<span class="sourceLineNo">807</span> if (closed) {<a name="line.807"></a> -<span class="sourceLineNo">808</span> RegionInfo hri = am.getRegionInfo(regionName);<a name="line.808"></a> -<span class="sourceLineNo">809</span> sendTransitionReport(server, ProtobufUtil.toRegionInfo(hri), TransitionCode.CLOSED);<a name="line.809"></a> -<span class="sourceLineNo">810</span> }<a name="line.810"></a> -<span class="sourceLineNo">811</span> resp.setClosed(closed);<a name="line.811"></a> -<span class="sourceLineNo">812</span> return resp.build();<a name="line.812"></a> -<span class="sourceLineNo">813</span> }<a name="line.813"></a> -<span class="sourceLineNo">814</span> }<a name="line.814"></a> -<span class="sourceLineNo">815</span><a name="line.815"></a> -<span class="sourceLineNo">816</span> private interface MockRSExecutor {<a name="line.816"></a> -<span class="sourceLineNo">817</span> ExecuteProceduresResponse sendRequest(ServerName server, ExecuteProceduresRequest req)<a name="line.817"></a> -<span class="sourceLineNo">818</span> throws IOException;<a name="line.818"></a> -<span class="sourceLineNo">819</span> }<a name="line.819"></a> -<span class="sourceLineNo">820</span><a name="line.820"></a> -<span class="sourceLineNo">821</span> private class MockRSProcedureDispatcher extends RSProcedureDispatcher {<a name="line.821"></a> -<span class="sourceLineNo">822</span> private MockRSExecutor mockRsExec;<a name="line.822"></a> -<span class="sourceLineNo">823</span><a name="line.823"></a> -<span class="sourceLineNo">824</span> public MockRSProcedureDispatcher(final MasterServices master) {<a name="line.824"></a> -<span class="sourceLineNo">825</span> super(master);<a name="line.825"></a> -<span class="sourceLineNo">826</span> }<a name="line.826"></a> +<span class="sourceLineNo">768</span> default:<a name="line.768"></a> +<span class="sourceLineNo">769</span> // fall out<a name="line.769"></a> +<span class="sourceLineNo">770</span> }<a name="line.770"></a> +<span class="sourceLineNo">771</span> return super.sendRequest(server, req);<a name="line.771"></a> +<span class="sourceLineNo">772</span> }<a name="line.772"></a> +<span class="sourceLineNo">773</span><a name="line.773"></a> +<span class="sourceLineNo">774</span> @Override<a name="line.774"></a> +<span class="sourceLineNo">775</span> protected RegionOpeningState execOpenRegion(final ServerName server, RegionOpenInfo openReq)<a name="line.775"></a> +<span class="sourceLineNo">776</span> throws IOException {<a name="line.776"></a> +<span class="sourceLineNo">777</span> switch (rand.nextInt(6)) {<a name="line.777"></a> +<span class="sourceLineNo">778</span> case 0:<a name="line.778"></a> +<span class="sourceLineNo">779</span> LOG.info("Return OPENED response");<a name="line.779"></a> +<span class="sourceLineNo">780</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.780"></a> +<span class="sourceLineNo">781</span> return OpenRegionResponse.RegionOpeningState.OPENED;<a name="line.781"></a> +<span class="sourceLineNo">782</span> case 1:<a name="line.782"></a> +<span class="sourceLineNo">783</span> LOG.info("Return transition report that OPENED/ALREADY_OPENED response");<a name="line.783"></a> +<span class="sourceLineNo">784</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.784"></a> +<span class="sourceLineNo">785</span> return OpenRegionResponse.RegionOpeningState.ALREADY_OPENED;<a name="line.785"></a> +<span class="sourceLineNo">786</span> case 2:<a name="line.786"></a> +<span class="sourceLineNo">787</span> LOG.info("Return transition report that FAILED_OPEN/FAILED_OPENING response");<a name="line.787"></a> +<span class="sourceLineNo">788</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.FAILED_OPEN);<a name="line.788"></a> +<span class="sourceLineNo">789</span> return OpenRegionResponse.RegionOpeningState.FAILED_OPENING;<a name="line.789"></a> +<span class="sourceLineNo">790</span> default:<a name="line.790"></a> +<span class="sourceLineNo">791</span> // fall out<a name="line.791"></a> +<span class="sourceLineNo">792</span> }<a name="line.792"></a> +<span class="sourceLineNo">793</span> // The procedure on master will just hang forever because nothing comes back<a name="line.793"></a> +<span class="sourceLineNo">794</span> // from the RS in this case.<a name="line.794"></a> +<span class="sourceLineNo">795</span> LOG.info("Return null as response; means proc stuck so we send in a crash report after a few seconds...");<a name="line.795"></a> +<span class="sourceLineNo">796</span> executor.schedule(new Runnable() {<a name="line.796"></a> +<span class="sourceLineNo">797</span> @Override<a name="line.797"></a> +<span class="sourceLineNo">798</span> public void run() {<a name="line.798"></a> +<span class="sourceLineNo">799</span> LOG.info("Delayed CRASHING of " + server);<a name="line.799"></a> +<span class="sourceLineNo">800</span> doCrash(server);<a name="line.800"></a> +<span class="sourceLineNo">801</span> }<a name="line.801"></a> +<span class="sourceLineNo">802</span> }, 5, TimeUnit.SECONDS);<a name="line.802"></a> +<span class="sourceLineNo">803</span> return null;<a name="line.803"></a> +<span class="sourceLineNo">804</span> }<a name="line.804"></a> +<span class="sourceLineNo">805</span><a name="line.805"></a> +<span class="sourceLineNo">806</span> @Override<a name="line.806"></a> +<span class="sourceLineNo">807</span> protected CloseRegionResponse execCloseRegion(ServerName server, byte[] regionName)<a name="line.807"></a> +<span class="sourceLineNo">808</span> throws IOException {<a name="line.808"></a> +<span class="sourceLineNo">809</span> CloseRegionResponse.Builder resp = CloseRegionResponse.newBuilder();<a name="line.809"></a> +<span class="sourceLineNo">810</span> boolean closed = rand.nextBoolean();<a name="line.810"></a> +<span class="sourceLineNo">811</span> if (closed) {<a name="line.811"></a> +<span class="sourceLineNo">812</span> RegionInfo hri = am.getRegionInfo(regionName);<a name="line.812"></a> +<span class="sourceLineNo">813</span> sendTransitionReport(server, ProtobufUtil.toRegionInfo(hri), TransitionCode.CLOSED);<a name="line.813"></a> +<span class="sourceLineNo">814</span> }<a name="line.814"></a> +<span class="sourceLineNo">815</span> resp.setClosed(closed);<a name="line.815"></a> +<span class="sourceLineNo">816</span> return resp.build();<a name="line.816"></a> +<span class="sourceLineNo">817</span> }<a name="line.817"></a> +<span class="sourceLineNo">818</span> }<a name="line.818"></a> +<span class="sourceLineNo">819</span><a name="line.819"></a> +<span class="sourceLineNo">820</span> private interface MockRSExecutor {<a name="line.820"></a> +<span class="sourceLineNo">821</span> ExecuteProceduresResponse sendRequest(ServerName server, ExecuteProceduresRequest req)<a name="line.821"></a> +<span class="sourceLineNo">822</span> throws IOException;<a name="line.822"></a> +<span class="sourceLineNo">823</span> }<a name="line.823"></a> +<span class="sourceLineNo">824</span><a name="line.824"></a> +<span class="sourceLineNo">825</span> private class MockRSProcedureDispatcher extends RSProcedureDispatcher {<a name="line.825"></a> +<span class="sourceLineNo">826</span> private MockRSExecutor mockRsExec;<a name="line.826"></a> <span class="sourceLineNo">827</span><a name="line.827"></a> -<span class="sourceLineNo">828</span> public void setMockRsExecutor(final MockRSExecutor mockRsExec) {<a name="line.828"></a> -<span class="sourceLineNo">829</span> this.mockRsExec = mockRsExec;<a name="line.829"></a> +<span class="sourceLineNo">828</span> public MockRSProcedureDispatcher(final MasterServices master) {<a name="line.828"></a> +<span class="sourceLineNo">829</span> super(master);<a name="line.829"></a> <span class="sourceLineNo">830</span> }<a name="line.830"></a> <span class="sourceLineNo">831</span><a name="line.831"></a> -<span class="sourceLineNo">832</span> @Override<a name="line.832"></a> -<span class="sourceLineNo">833</span> protected void remoteDispatch(ServerName serverName, Set<RemoteProcedure> remoteProcedures) {<a name="line.833"></a> -<span class="sourceLineNo">834</span> submitTask(new MockRemoteCall(serverName, remoteProcedures));<a name="line.834"></a> -<span class="sourceLineNo">835</span> }<a name="line.835"></a> -<span class="sourceLineNo">836</span><a name="line.836"></a> -<span class="sourceLineNo">837</span> private class MockRemoteCall extends ExecuteProceduresRemoteCall {<a name="line.837"></a> -<span class="sourceLineNo">838</span> public MockRemoteCall(final ServerName serverName,<a name="line.838"></a> -<span class="sourceLineNo">839</span> final Set<RemoteProcedure> operations) {<a name="line.839"></a> -<span class="sourceLineNo">840</span> super(serverName, operations);<a name="line.840"></a> -<span class="sourceLineNo">841</span> }<a name="line.841"></a> -<span class="sourceLineNo">842</span><a name="line.842"></a> -<span class="sourceLineNo">843</span> @Override<a name="line.843"></a> -<span class="sourceLineNo">844</span> protected ExecuteProceduresResponse sendRequest(final ServerName serverName,<a name="line.844"></a> -<span class="sourceLineNo">845</span> final ExecuteProceduresRequest request) throws IOException {<a name="line.845"></a> -<span class="sourceLineNo">846</span> return mockRsExec.sendRequest(serverName, request);<a name="line.846"></a> -<span class="sourceLineNo">847</span> }<a name="line.847"></a> -<span class="sourceLineNo">848</span> }<a name="line.848"></a> -<span class="sourceLineNo">849</span> }<a name="line.849"></a> -<span class="sourceLineNo">850</span><a name="line.850"></a> -<span class="sourceLineNo">851</span> private void collectAssignmentManagerMetrics() {<a name="line.851"></a> -<span class="sourceLineNo">852</span> assignSubmittedCount = assignProcMetrics.getSubmittedCounter().getCount();<a name="line.852"></a> -<span class="sourceLineNo">853</span> assignFailedCount = assignProcMetrics.getFailedCounter().getCount();<a name="line.853"></a> -<span class="sourceLineNo">854</span> unassignSubmittedCount = unassignProcMetrics.getSubmittedCounter().getCount();<a name="line.854"></a> -<span class="sourceLineNo">855</span> unassignFailedCount = unassignProcMetrics.getFailedCounter().getCount();<a name="line.855"></a> -<span class="sourceLineNo">856</span> }<a name="line.856"></a> -<span class="sourceLineNo">857</span>}<a name="line.857"></a> +<span class="sourceLineNo">832</span> public void setMockRsExecutor(final MockRSExecutor mockRsExec) {<a name="line.832"></a> +<span class="sourceLineNo">833</span> this.mockRsExec = mockRsExec;<a name="line.833"></a> +<span class="sourceLineNo">834</span> }<a name="line.834"></a> +<span class="sourceLineNo">835</span><a name="line.835"></a> +<span class="sourceLineNo">836</span> @Override<a name="line.836"></a> +<span class="sourceLineNo">837</span> protected void remoteDispatch(ServerName serverName, Set<RemoteProcedure> remoteProcedures) {<a name="line.837"></a> +<span class="sourceLineNo">838</span> submitTask(new MockRemoteCall(serverName, remoteProcedures));<a name="line.838"></a> +<span class="sourceLineNo">839</span> }<a name="line.839"></a> +<span class="sourceLineNo">840</span><a name="line.840"></a> +<span class="sourceLineNo">841</span> private class MockRemoteCall extends ExecuteProceduresRemoteCall {<a name="line.841"></a> +<span class="sourceLineNo">842</span> public MockRemoteCall(final ServerName serverName,<a name="line.842"></a> +<span class="sourceLineNo">843</span> final Set<RemoteProcedure> operations) {<a name="line.843"></a> +<span class="sourceLineNo">844</span> super(serverName, operations);<a name="line.844"></a> +<span class="sourceLineNo">845</span> }<a name="line.845"></a> +<span class="sourceLineNo">846</span><a name="line.846"></a> +<span class="sourceLineNo">847</span> @Override<a name="line.847"></a> +<span class="sourceLineNo">848</span> protected ExecuteProceduresResponse sendRequest(final ServerName serverName,<a name="line.848"></a> +<span class="sourceLineNo">849</span> final ExecuteProceduresRequest request) throws IOException {<a name="line.849"></a> +<span class="sourceLineNo">850</span> return mockRsExec.sendRequest(serverName, request);<a name="line.850"></a> +<span class="sourceLineNo">851</span> }<a name="line.851"></a> +<span class="sourceLineNo">852</span> }<a name="line.852"></a> +<span class="sourceLineNo">853</span> }<a name="line.853"></a> +<span class="sourceLineNo">854</span><a name="line.854"></a> +<span class="sourceLineNo">855</span> private void collectAssignmentManagerMetrics() {<a name="line.855"></a> +<span class="sourceLineNo">856</span> assignSubmittedCount = assignProcMetrics.getSubmittedCounter().getCount();<a name="line.856"></a> +<span class="sourceLineNo">857</span> assignFailedCount = assignProcMetrics.getFailedCounter().getCount();<a name="line.857"></a> +<span class="sourceLineNo">858</span> unassignSubmittedCount = unassignProcMetrics.getSubmittedCounter().getCount();<a name="line.858"></a> +<span class="sourceLineNo">859</span> unassignFailedCount = unassignProcMetrics.getFailedCounter().getCount();<a name="line.859"></a> +<span class="sourceLineNo">860</span> }<a name="line.860"></a> +<span class="sourceLineNo">861</span>}<a name="line.861"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/464fda73/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangThenRSCrashExecutor.html ---------------------------------------------------------------------- diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangThenRSCrashExecutor.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangThenRSCrashExecutor.html index 42507a2..8b6dda3 100644 --- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangThenRSCrashExecutor.html +++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangThenRSCrashExecutor.html @@ -773,96 +773,100 @@ <span class="sourceLineNo">765</span> case 0: throw new ServerNotRunningYetException("wait on server startup");<a name="line.765"></a> <span class="sourceLineNo">766</span> case 1: throw new SocketTimeoutException("simulate socket timeout");<a name="line.766"></a> <span class="sourceLineNo">767</span> case 2: throw new RemoteException("java.io.IOException", "unexpected exception");<a name="line.767"></a> -<span class="sourceLineNo">768</span> }<a name="line.768"></a> -<span class="sourceLineNo">769</span> return super.sendRequest(server, req);<a name="line.769"></a> -<span class="sourceLineNo">770</span> }<a name="line.770"></a> -<span class="sourceLineNo">771</span><a name="line.771"></a> -<span class="sourceLineNo">772</span> @Override<a name="line.772"></a> -<span class="sourceLineNo">773</span> protected RegionOpeningState execOpenRegion(final ServerName server, RegionOpenInfo openReq)<a name="line.773"></a> -<span class="sourceLineNo">774</span> throws IOException {<a name="line.774"></a> -<span class="sourceLineNo">775</span> switch (rand.nextInt(6)) {<a name="line.775"></a> -<span class="sourceLineNo">776</span> case 0:<a name="line.776"></a> -<span class="sourceLineNo">777</span> LOG.info("Return OPENED response");<a name="line.777"></a> -<span class="sourceLineNo">778</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.778"></a> -<span class="sourceLineNo">779</span> return OpenRegionResponse.RegionOpeningState.OPENED;<a name="line.779"></a> -<span class="sourceLineNo">780</span> case 1:<a name="line.780"></a> -<span class="sourceLineNo">781</span> LOG.info("Return transition report that OPENED/ALREADY_OPENED response");<a name="line.781"></a> -<span class="sourceLineNo">782</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.782"></a> -<span class="sourceLineNo">783</span> return OpenRegionResponse.RegionOpeningState.ALREADY_OPENED;<a name="line.783"></a> -<span class="sourceLineNo">784</span> case 2:<a name="line.784"></a> -<span class="sourceLineNo">785</span> LOG.info("Return transition report that FAILED_OPEN/FAILED_OPENING response");<a name="line.785"></a> -<span class="sourceLineNo">786</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.FAILED_OPEN);<a name="line.786"></a> -<span class="sourceLineNo">787</span> return OpenRegionResponse.RegionOpeningState.FAILED_OPENING;<a name="line.787"></a> -<span class="sourceLineNo">788</span> }<a name="line.788"></a> -<span class="sourceLineNo">789</span> // The procedure on master will just hang forever because nothing comes back<a name="line.789"></a> -<span class="sourceLineNo">790</span> // from the RS in this case.<a name="line.790"></a> -<span class="sourceLineNo">791</span> LOG.info("Return null as response; means proc stuck so we send in a crash report after a few seconds...");<a name="line.791"></a> -<span class="sourceLineNo">792</span> executor.schedule(new Runnable() {<a name="line.792"></a> -<span class="sourceLineNo">793</span> @Override<a name="line.793"></a> -<span class="sourceLineNo">794</span> public void run() {<a name="line.794"></a> -<span class="sourceLineNo">795</span> LOG.info("Delayed CRASHING of " + server);<a name="line.795"></a> -<span class="sourceLineNo">796</span> doCrash(server);<a name="line.796"></a> -<span class="sourceLineNo">797</span> }<a name="line.797"></a> -<span class="sourceLineNo">798</span> }, 5, TimeUnit.SECONDS);<a name="line.798"></a> -<span class="sourceLineNo">799</span> return null;<a name="line.799"></a> -<span class="sourceLineNo">800</span> }<a name="line.800"></a> -<span class="sourceLineNo">801</span><a name="line.801"></a> -<span class="sourceLineNo">802</span> @Override<a name="line.802"></a> -<span class="sourceLineNo">803</span> protected CloseRegionResponse execCloseRegion(ServerName server, byte[] regionName)<a name="line.803"></a> -<span class="sourceLineNo">804</span> throws IOException {<a name="line.804"></a> -<span class="sourceLineNo">805</span> CloseRegionResponse.Builder resp = CloseRegionResponse.newBuilder();<a name="line.805"></a> -<span class="sourceLineNo">806</span> boolean closed = rand.nextBoolean();<a name="line.806"></a> -<span class="sourceLineNo">807</span> if (closed) {<a name="line.807"></a> -<span class="sourceLineNo">808</span> RegionInfo hri = am.getRegionInfo(regionName);<a name="line.808"></a> -<span class="sourceLineNo">809</span> sendTransitionReport(server, ProtobufUtil.toRegionInfo(hri), TransitionCode.CLOSED);<a name="line.809"></a> -<span class="sourceLineNo">810</span> }<a name="line.810"></a> -<span class="sourceLineNo">811</span> resp.setClosed(closed);<a name="line.811"></a> -<span class="sourceLineNo">812</span> return resp.build();<a name="line.812"></a> -<span class="sourceLineNo">813</span> }<a name="line.813"></a> -<span class="sourceLineNo">814</span> }<a name="line.814"></a> -<span class="sourceLineNo">815</span><a name="line.815"></a> -<span class="sourceLineNo">816</span> private interface MockRSExecutor {<a name="line.816"></a> -<span class="sourceLineNo">817</span> ExecuteProceduresResponse sendRequest(ServerName server, ExecuteProceduresRequest req)<a name="line.817"></a> -<span class="sourceLineNo">818</span> throws IOException;<a name="line.818"></a> -<span class="sourceLineNo">819</span> }<a name="line.819"></a> -<span class="sourceLineNo">820</span><a name="line.820"></a> -<span class="sourceLineNo">821</span> private class MockRSProcedureDispatcher extends RSProcedureDispatcher {<a name="line.821"></a> -<span class="sourceLineNo">822</span> private MockRSExecutor mockRsExec;<a name="line.822"></a> -<span class="sourceLineNo">823</span><a name="line.823"></a> -<span class="sourceLineNo">824</span> public MockRSProcedureDispatcher(final MasterServices master) {<a name="line.824"></a> -<span class="sourceLineNo">825</span> super(master);<a name="line.825"></a> -<span class="sourceLineNo">826</span> }<a name="line.826"></a> +<span class="sourceLineNo">768</span> default:<a name="line.768"></a> +<span class="sourceLineNo">769</span> // fall out<a name="line.769"></a> +<span class="sourceLineNo">770</span> }<a name="line.770"></a> +<span class="sourceLineNo">771</span> return super.sendRequest(server, req);<a name="line.771"></a> +<span class="sourceLineNo">772</span> }<a name="line.772"></a> +<span class="sourceLineNo">773</span><a name="line.773"></a> +<span class="sourceLineNo">774</span> @Override<a name="line.774"></a> +<span class="sourceLineNo">775</span> protected RegionOpeningState execOpenRegion(final ServerName server, RegionOpenInfo openReq)<a name="line.775"></a> +<span class="sourceLineNo">776</span> throws IOException {<a name="line.776"></a> +<span class="sourceLineNo">777</span> switch (rand.nextInt(6)) {<a name="line.777"></a> +<span class="sourceLineNo">778</span> case 0:<a name="line.778"></a> +<span class="sourceLineNo">779</span> LOG.info("Return OPENED response");<a name="line.779"></a> +<span class="sourceLineNo">780</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.780"></a> +<span class="sourceLineNo">781</span> return OpenRegionResponse.RegionOpeningState.OPENED;<a name="line.781"></a> +<span class="sourceLineNo">782</span> case 1:<a name="line.782"></a> +<span class="sourceLineNo">783</span> LOG.info("Return transition report that OPENED/ALREADY_OPENED response");<a name="line.783"></a> +<span class="sourceLineNo">784</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.784"></a> +<span class="sourceLineNo">785</span> return OpenRegionResponse.RegionOpeningState.ALREADY_OPENED;<a name="line.785"></a> +<span class="sourceLineNo">786</span> case 2:<a name="line.786"></a> +<span class="sourceLineNo">787</span> LOG.info("Return transition report that FAILED_OPEN/FAILED_OPENING response");<a name="line.787"></a> +<span class="sourceLineNo">788</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.FAILED_OPEN);<a name="line.788"></a> +<span class="sourceLineNo">789</span> return OpenRegionResponse.RegionOpeningState.FAILED_OPENING;<a name="line.789"></a> +<span class="sourceLineNo">790</span> default:<a name="line.790"></a> +<span class="sourceLineNo">791</span> // fall out<a name="line.791"></a> +<span class="sourceLineNo">792</span> }<a name="line.792"></a> +<span class="sourceLineNo">793</span> // The procedure on master will just hang forever because nothing comes back<a name="line.793"></a> +<span class="sourceLineNo">794</span> // from the RS in this case.<a name="line.794"></a> +<span class="sourceLineNo">795</span> LOG.info("Return null as response; means proc stuck so we send in a crash report after a few seconds...");<a name="line.795"></a> +<span class="sourceLineNo">796</span> executor.schedule(new Runnable() {<a name="line.796"></a> +<span class="sourceLineNo">797</span> @Override<a name="line.797"></a> +<span class="sourceLineNo">798</span> public void run() {<a name="line.798"></a> +<span class="sourceLineNo">799</span> LOG.info("Delayed CRASHING of " + server);<a name="line.799"></a> +<span class="sourceLineNo">800</span> doCrash(server);<a name="line.800"></a> +<span class="sourceLineNo">801</span> }<a name="line.801"></a> +<span class="sourceLineNo">802</span> }, 5, TimeUnit.SECONDS);<a name="line.802"></a> +<span class="sourceLineNo">803</span> return null;<a name="line.803"></a> +<span class="sourceLineNo">804</span> }<a name="line.804"></a> +<span class="sourceLineNo">805</span><a name="line.805"></a> +<span class="sourceLineNo">806</span> @Override<a name="line.806"></a> +<span class="sourceLineNo">807</span> protected CloseRegionResponse execCloseRegion(ServerName server, byte[] regionName)<a name="line.807"></a> +<span class="sourceLineNo">808</span> throws IOException {<a name="line.808"></a> +<span class="sourceLineNo">809</span> CloseRegionResponse.Builder resp = CloseRegionResponse.newBuilder();<a name="line.809"></a> +<span class="sourceLineNo">810</span> boolean closed = rand.nextBoolean();<a name="line.810"></a> +<span class="sourceLineNo">811</span> if (closed) {<a name="line.811"></a> +<span class="sourceLineNo">812</span> RegionInfo hri = am.getRegionInfo(regionName);<a name="line.812"></a> +<span class="sourceLineNo">813</span> sendTransitionReport(server, ProtobufUtil.toRegionInfo(hri), TransitionCode.CLOSED);<a name="line.813"></a> +<span class="sourceLineNo">814</span> }<a name="line.814"></a> +<span class="sourceLineNo">815</span> resp.setClosed(closed);<a name="line.815"></a> +<span class="sourceLineNo">816</span> return resp.build();<a name="line.816"></a> +<span class="sourceLineNo">817</span> }<a name="line.817"></a> +<span class="sourceLineNo">818</span> }<a name="line.818"></a> +<span class="sourceLineNo">819</span><a name="line.819"></a> +<span class="sourceLineNo">820</span> private interface MockRSExecutor {<a name="line.820"></a> +<span class="sourceLineNo">821</span> ExecuteProceduresResponse sendRequest(ServerName server, ExecuteProceduresRequest req)<a name="line.821"></a> +<span class="sourceLineNo">822</span> throws IOException;<a name="line.822"></a> +<span class="sourceLineNo">823</span> }<a name="line.823"></a> +<span class="sourceLineNo">824</span><a name="line.824"></a> +<span class="sourceLineNo">825</span> private class MockRSProcedureDispatcher extends RSProcedureDispatcher {<a name="line.825"></a> +<span class="sourceLineNo">826</span> private MockRSExecutor mockRsExec;<a name="line.826"></a> <span class="sourceLineNo">827</span><a name="line.827"></a> -<span class="sourceLineNo">828</span> public void setMockRsExecutor(final MockRSExecutor mockRsExec) {<a name="line.828"></a> -<span class="sourceLineNo">829</span> this.mockRsExec = mockRsExec;<a name="line.829"></a> +<span class="sourceLineNo">828</span> public MockRSProcedureDispatcher(final MasterServices master) {<a name="line.828"></a> +<span class="sourceLineNo">829</span> super(master);<a name="line.829"></a> <span class="sourceLineNo">830</span> }<a name="line.830"></a> <span class="sourceLineNo">831</span><a name="line.831"></a> -<span class="sourceLineNo">832</span> @Override<a name="line.832"></a> -<span class="sourceLineNo">833</span> protected void remoteDispatch(ServerName serverName, Set<RemoteProcedure> remoteProcedures) {<a name="line.833"></a> -<span class="sourceLineNo">834</span> submitTask(new MockRemoteCall(serverName, remoteProcedures));<a name="line.834"></a> -<span class="sourceLineNo">835</span> }<a name="line.835"></a> -<span class="sourceLineNo">836</span><a name="line.836"></a> -<span class="sourceLineNo">837</span> private class MockRemoteCall extends ExecuteProceduresRemoteCall {<a name="line.837"></a> -<span class="sourceLineNo">838</span> public MockRemoteCall(final ServerName serverName,<a name="line.838"></a> -<span class="sourceLineNo">839</span> final Set<RemoteProcedure> operations) {<a name="line.839"></a> -<span class="sourceLineNo">840</span> super(serverName, operations);<a name="line.840"></a> -<span class="sourceLineNo">841</span> }<a name="line.841"></a> -<span class="sourceLineNo">842</span><a name="line.842"></a> -<span class="sourceLineNo">843</span> @Override<a name="line.843"></a> -<span class="sourceLineNo">844</span> protected ExecuteProceduresResponse sendRequest(final ServerName serverName,<a name="line.844"></a> -<span class="sourceLineNo">845</span> final ExecuteProceduresRequest request) throws IOException {<a name="line.845"></a> -<span class="sourceLineNo">846</span> return mockRsExec.sendRequest(serverName, request);<a name="line.846"></a> -<span class="sourceLineNo">847</span> }<a name="line.847"></a> -<span class="sourceLineNo">848</span> }<a name="line.848"></a> -<span class="sourceLineNo">849</span> }<a name="line.849"></a> -<span class="sourceLineNo">850</span><a name="line.850"></a> -<span class="sourceLineNo">851</span> private void collectAssignmentManagerMetrics() {<a name="line.851"></a> -<span class="sourceLineNo">852</span> assignSubmittedCount = assignProcMetrics.getSubmittedCounter().getCount();<a name="line.852"></a> -<span class="sourceLineNo">853</span> assignFailedCount = assignProcMetrics.getFailedCounter().getCount();<a name="line.853"></a> -<span class="sourceLineNo">854</span> unassignSubmittedCount = unassignProcMetrics.getSubmittedCounter().getCount();<a name="line.854"></a> -<span class="sourceLineNo">855</span> unassignFailedCount = unassignProcMetrics.getFailedCounter().getCount();<a name="line.855"></a> -<span class="sourceLineNo">856</span> }<a name="line.856"></a> -<span class="sourceLineNo">857</span>}<a name="line.857"></a> +<span class="sourceLineNo">832</span> public void setMockRsExecutor(final MockRSExecutor mockRsExec) {<a name="line.832"></a> +<span class="sourceLineNo">833</span> this.mockRsExec = mockRsExec;<a name="line.833"></a> +<span class="sourceLineNo">834</span> }<a name="line.834"></a> +<span class="sourceLineNo">835</span><a name="line.835"></a> +<span class="sourceLineNo">836</span> @Override<a name="line.836"></a> +<span class="sourceLineNo">837</span> protected void remoteDispatch(ServerName serverName, Set<RemoteProcedure> remoteProcedures) {<a name="line.837"></a> +<span class="sourceLineNo">838</span> submitTask(new MockRemoteCall(serverName, remoteProcedures));<a name="line.838"></a> +<span class="sourceLineNo">839</span> }<a name="line.839"></a> +<span class="sourceLineNo">840</span><a name="line.840"></a> +<span class="sourceLineNo">841</span> private class MockRemoteCall extends ExecuteProceduresRemoteCall {<a name="line.841"></a> +<span class="sourceLineNo">842</span> public MockRemoteCall(final ServerName serverName,<a name="line.842"></a> +<span class="sourceLineNo">843</span> final Set<RemoteProcedure> operations) {<a name="line.843"></a> +<span class="sourceLineNo">844</span> super(serverName, operations);<a name="line.844"></a> +<span class="sourceLineNo">845</span> }<a name="line.845"></a> +<span class="sourceLineNo">846</span><a name="line.846"></a> +<span class="sourceLineNo">847</span> @Override<a name="line.847"></a> +<span class="sourceLineNo">848</span> protected ExecuteProceduresResponse sendRequest(final ServerName serverName,<a name="line.848"></a> +<span class="sourceLineNo">849</span> final ExecuteProceduresRequest request) throws IOException {<a name="line.849"></a> +<span class="sourceLineNo">850</span> return mockRsExec.sendRequest(serverName, request);<a name="line.850"></a> +<span class="sourceLineNo">851</span> }<a name="line.851"></a> +<span class="sourceLineNo">852</span> }<a name="line.852"></a> +<span class="sourceLineNo">853</span> }<a name="line.853"></a> +<span class="sourceLineNo">854</span><a name="line.854"></a> +<span class="sourceLineNo">855</span> private void collectAssignmentManagerMetrics() {<a name="line.855"></a> +<span class="sourceLineNo">856</span> assignSubmittedCount = assignProcMetrics.getSubmittedCounter().getCount();<a name="line.856"></a> +<span class="sourceLineNo">857</span> assignFailedCount = assignProcMetrics.getFailedCounter().getCount();<a name="line.857"></a> +<span class="sourceLineNo">858</span> unassignSubmittedCount = unassignProcMetrics.getSubmittedCounter().getCount();<a name="line.858"></a> +<span class="sourceLineNo">859</span> unassignFailedCount = unassignProcMetrics.getFailedCounter().getCount();<a name="line.859"></a> +<span class="sourceLineNo">860</span> }<a name="line.860"></a> +<span class="sourceLineNo">861</span>}<a name="line.861"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/464fda73/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangThenRSRestartExecutor.html ---------------------------------------------------------------------- diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangThenRSRestartExecutor.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangThenRSRestartExecutor.html index 42507a2..8b6dda3 100644 --- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangThenRSRestartExecutor.html +++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.HangThenRSRestartExecutor.html @@ -773,96 +773,100 @@ <span class="sourceLineNo">765</span> case 0: throw new ServerNotRunningYetException("wait on server startup");<a name="line.765"></a> <span class="sourceLineNo">766</span> case 1: throw new SocketTimeoutException("simulate socket timeout");<a name="line.766"></a> <span class="sourceLineNo">767</span> case 2: throw new RemoteException("java.io.IOException", "unexpected exception");<a name="line.767"></a> -<span class="sourceLineNo">768</span> }<a name="line.768"></a> -<span class="sourceLineNo">769</span> return super.sendRequest(server, req);<a name="line.769"></a> -<span class="sourceLineNo">770</span> }<a name="line.770"></a> -<span class="sourceLineNo">771</span><a name="line.771"></a> -<span class="sourceLineNo">772</span> @Override<a name="line.772"></a> -<span class="sourceLineNo">773</span> protected RegionOpeningState execOpenRegion(final ServerName server, RegionOpenInfo openReq)<a name="line.773"></a> -<span class="sourceLineNo">774</span> throws IOException {<a name="line.774"></a> -<span class="sourceLineNo">775</span> switch (rand.nextInt(6)) {<a name="line.775"></a> -<span class="sourceLineNo">776</span> case 0:<a name="line.776"></a> -<span class="sourceLineNo">777</span> LOG.info("Return OPENED response");<a name="line.777"></a> -<span class="sourceLineNo">778</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.778"></a> -<span class="sourceLineNo">779</span> return OpenRegionResponse.RegionOpeningState.OPENED;<a name="line.779"></a> -<span class="sourceLineNo">780</span> case 1:<a name="line.780"></a> -<span class="sourceLineNo">781</span> LOG.info("Return transition report that OPENED/ALREADY_OPENED response");<a name="line.781"></a> -<span class="sourceLineNo">782</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.782"></a> -<span class="sourceLineNo">783</span> return OpenRegionResponse.RegionOpeningState.ALREADY_OPENED;<a name="line.783"></a> -<span class="sourceLineNo">784</span> case 2:<a name="line.784"></a> -<span class="sourceLineNo">785</span> LOG.info("Return transition report that FAILED_OPEN/FAILED_OPENING response");<a name="line.785"></a> -<span class="sourceLineNo">786</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.FAILED_OPEN);<a name="line.786"></a> -<span class="sourceLineNo">787</span> return OpenRegionResponse.RegionOpeningState.FAILED_OPENING;<a name="line.787"></a> -<span class="sourceLineNo">788</span> }<a name="line.788"></a> -<span class="sourceLineNo">789</span> // The procedure on master will just hang forever because nothing comes back<a name="line.789"></a> -<span class="sourceLineNo">790</span> // from the RS in this case.<a name="line.790"></a> -<span class="sourceLineNo">791</span> LOG.info("Return null as response; means proc stuck so we send in a crash report after a few seconds...");<a name="line.791"></a> -<span class="sourceLineNo">792</span> executor.schedule(new Runnable() {<a name="line.792"></a> -<span class="sourceLineNo">793</span> @Override<a name="line.793"></a> -<span class="sourceLineNo">794</span> public void run() {<a name="line.794"></a> -<span class="sourceLineNo">795</span> LOG.info("Delayed CRASHING of " + server);<a name="line.795"></a> -<span class="sourceLineNo">796</span> doCrash(server);<a name="line.796"></a> -<span class="sourceLineNo">797</span> }<a name="line.797"></a> -<span class="sourceLineNo">798</span> }, 5, TimeUnit.SECONDS);<a name="line.798"></a> -<span class="sourceLineNo">799</span> return null;<a name="line.799"></a> -<span class="sourceLineNo">800</span> }<a name="line.800"></a> -<span class="sourceLineNo">801</span><a name="line.801"></a> -<span class="sourceLineNo">802</span> @Override<a name="line.802"></a> -<span class="sourceLineNo">803</span> protected CloseRegionResponse execCloseRegion(ServerName server, byte[] regionName)<a name="line.803"></a> -<span class="sourceLineNo">804</span> throws IOException {<a name="line.804"></a> -<span class="sourceLineNo">805</span> CloseRegionResponse.Builder resp = CloseRegionResponse.newBuilder();<a name="line.805"></a> -<span class="sourceLineNo">806</span> boolean closed = rand.nextBoolean();<a name="line.806"></a> -<span class="sourceLineNo">807</span> if (closed) {<a name="line.807"></a> -<span class="sourceLineNo">808</span> RegionInfo hri = am.getRegionInfo(regionName);<a name="line.808"></a> -<span class="sourceLineNo">809</span> sendTransitionReport(server, ProtobufUtil.toRegionInfo(hri), TransitionCode.CLOSED);<a name="line.809"></a> -<span class="sourceLineNo">810</span> }<a name="line.810"></a> -<span class="sourceLineNo">811</span> resp.setClosed(closed);<a name="line.811"></a> -<span class="sourceLineNo">812</span> return resp.build();<a name="line.812"></a> -<span class="sourceLineNo">813</span> }<a name="line.813"></a> -<span class="sourceLineNo">814</span> }<a name="line.814"></a> -<span class="sourceLineNo">815</span><a name="line.815"></a> -<span class="sourceLineNo">816</span> private interface MockRSExecutor {<a name="line.816"></a> -<span class="sourceLineNo">817</span> ExecuteProceduresResponse sendRequest(ServerName server, ExecuteProceduresRequest req)<a name="line.817"></a> -<span class="sourceLineNo">818</span> throws IOException;<a name="line.818"></a> -<span class="sourceLineNo">819</span> }<a name="line.819"></a> -<span class="sourceLineNo">820</span><a name="line.820"></a> -<span class="sourceLineNo">821</span> private class MockRSProcedureDispatcher extends RSProcedureDispatcher {<a name="line.821"></a> -<span class="sourceLineNo">822</span> private MockRSExecutor mockRsExec;<a name="line.822"></a> -<span class="sourceLineNo">823</span><a name="line.823"></a> -<span class="sourceLineNo">824</span> public MockRSProcedureDispatcher(final MasterServices master) {<a name="line.824"></a> -<span class="sourceLineNo">825</span> super(master);<a name="line.825"></a> -<span class="sourceLineNo">826</span> }<a name="line.826"></a> +<span class="sourceLineNo">768</span> default:<a name="line.768"></a> +<span class="sourceLineNo">769</span> // fall out<a name="line.769"></a> +<span class="sourceLineNo">770</span> }<a name="line.770"></a> +<span class="sourceLineNo">771</span> return super.sendRequest(server, req);<a name="line.771"></a> +<span class="sourceLineNo">772</span> }<a name="line.772"></a> +<span class="sourceLineNo">773</span><a name="line.773"></a> +<span class="sourceLineNo">774</span> @Override<a name="line.774"></a> +<span class="sourceLineNo">775</span> protected RegionOpeningState execOpenRegion(final ServerName server, RegionOpenInfo openReq)<a name="line.775"></a> +<span class="sourceLineNo">776</span> throws IOException {<a name="line.776"></a> +<span class="sourceLineNo">777</span> switch (rand.nextInt(6)) {<a name="line.777"></a> +<span class="sourceLineNo">778</span> case 0:<a name="line.778"></a> +<span class="sourceLineNo">779</span> LOG.info("Return OPENED response");<a name="line.779"></a> +<span class="sourceLineNo">780</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.780"></a> +<span class="sourceLineNo">781</span> return OpenRegionResponse.RegionOpeningState.OPENED;<a name="line.781"></a> +<span class="sourceLineNo">782</span> case 1:<a name="line.782"></a> +<span class="sourceLineNo">783</span> LOG.info("Return transition report that OPENED/ALREADY_OPENED response");<a name="line.783"></a> +<span class="sourceLineNo">784</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.784"></a> +<span class="sourceLineNo">785</span> return OpenRegionResponse.RegionOpeningState.ALREADY_OPENED;<a name="line.785"></a> +<span class="sourceLineNo">786</span> case 2:<a name="line.786"></a> +<span class="sourceLineNo">787</span> LOG.info("Return transition report that FAILED_OPEN/FAILED_OPENING response");<a name="line.787"></a> +<span class="sourceLineNo">788</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.FAILED_OPEN);<a name="line.788"></a> +<span class="sourceLineNo">789</span> return OpenRegionResponse.RegionOpeningState.FAILED_OPENING;<a name="line.789"></a> +<span class="sourceLineNo">790</span> default:<a name="line.790"></a> +<span class="sourceLineNo">791</span> // fall out<a name="line.791"></a> +<span class="sourceLineNo">792</span> }<a name="line.792"></a> +<span class="sourceLineNo">793</span> // The procedure on master will just hang forever because nothing comes back<a name="line.793"></a> +<span class="sourceLineNo">794</span> // from the RS in this case.<a name="line.794"></a> +<span class="sourceLineNo">795</span> LOG.info("Return null as response; means proc stuck so we send in a crash report after a few seconds...");<a name="line.795"></a> +<span class="sourceLineNo">796</span> executor.schedule(new Runnable() {<a name="line.796"></a> +<span class="sourceLineNo">797</span> @Override<a name="line.797"></a> +<span class="sourceLineNo">798</span> public void run() {<a name="line.798"></a> +<span class="sourceLineNo">799</span> LOG.info("Delayed CRASHING of " + server);<a name="line.799"></a> +<span class="sourceLineNo">800</span> doCrash(server);<a name="line.800"></a> +<span class="sourceLineNo">801</span> }<a name="line.801"></a> +<span class="sourceLineNo">802</span> }, 5, TimeUnit.SECONDS);<a name="line.802"></a> +<span class="sourceLineNo">803</span> return null;<a name="line.803"></a> +<span class="sourceLineNo">804</span> }<a name="line.804"></a> +<span class="sourceLineNo">805</span><a name="line.805"></a> +<span class="sourceLineNo">806</span> @Override<a name="line.806"></a> +<span class="sourceLineNo">807</span> protected CloseRegionResponse execCloseRegion(ServerName server, byte[] regionName)<a name="line.807"></a> +<span class="sourceLineNo">808</span> throws IOException {<a name="line.808"></a> +<span class="sourceLineNo">809</span> CloseRegionResponse.Builder resp = CloseRegionResponse.newBuilder();<a name="line.809"></a> +<span class="sourceLineNo">810</span> boolean closed = rand.nextBoolean();<a name="line.810"></a> +<span class="sourceLineNo">811</span> if (closed) {<a name="line.811"></a> +<span class="sourceLineNo">812</span> RegionInfo hri = am.getRegionInfo(regionName);<a name="line.812"></a> +<span class="sourceLineNo">813</span> sendTransitionReport(server, ProtobufUtil.toRegionInfo(hri), TransitionCode.CLOSED);<a name="line.813"></a> +<span class="sourceLineNo">814</span> }<a name="line.814"></a> +<span class="sourceLineNo">815</span> resp.setClosed(closed);<a name="line.815"></a> +<span class="sourceLineNo">816</span> return resp.build();<a name="line.816"></a> +<span class="sourceLineNo">817</span> }<a name="line.817"></a> +<span class="sourceLineNo">818</span> }<a name="line.818"></a> +<span class="sourceLineNo">819</span><a name="line.819"></a> +<span class="sourceLineNo">820</span> private interface MockRSExecutor {<a name="line.820"></a> +<span class="sourceLineNo">821</span> ExecuteProceduresResponse sendRequest(ServerName server, ExecuteProceduresRequest req)<a name="line.821"></a> +<span class="sourceLineNo">822</span> throws IOException;<a name="line.822"></a> +<span class="sourceLineNo">823</span> }<a name="line.823"></a> +<span class="sourceLineNo">824</span><a name="line.824"></a> +<span class="sourceLineNo">825</span> private class MockRSProcedureDispatcher extends RSProcedureDispatcher {<a name="line.825"></a> +<span class="sourceLineNo">826</span> private MockRSExecutor mockRsExec;<a name="line.826"></a> <span class="sourceLineNo">827</span><a name="line.827"></a> -<span class="sourceLineNo">828</span> public void setMockRsExecutor(final MockRSExecutor mockRsExec) {<a name="line.828"></a> -<span class="sourceLineNo">829</span> this.mockRsExec = mockRsExec;<a name="line.829"></a> +<span class="sourceLineNo">828</span> public MockRSProcedureDispatcher(final MasterServices master) {<a name="line.828"></a> +<span class="sourceLineNo">829</span> super(master);<a name="line.829"></a> <span class="sourceLineNo">830</span> }<a name="line.830"></a> <span class="sourceLineNo">831</span><a name="line.831"></a> -<span class="sourceLineNo">832</span> @Override<a name="line.832"></a> -<span class="sourceLineNo">833</span> protected void remoteDispatch(ServerName serverName, Set<RemoteProcedure> remoteProcedures) {<a name="line.833"></a> -<span class="sourceLineNo">834</span> submitTask(new MockRemoteCall(serverName, remoteProcedures));<a name="line.834"></a> -<span class="sourceLineNo">835</span> }<a name="line.835"></a> -<span class="sourceLineNo">836</span><a name="line.836"></a> -<span class="sourceLineNo">837</span> private class MockRemoteCall extends ExecuteProceduresRemoteCall {<a name="line.837"></a> -<span class="sourceLineNo">838</span> public MockRemoteCall(final ServerName serverName,<a name="line.838"></a> -<span class="sourceLineNo">839</span> final Set<RemoteProcedure> operations) {<a name="line.839"></a> -<span class="sourceLineNo">840</span> super(serverName, operations);<a name="line.840"></a> -<span class="sourceLineNo">841</span> }<a name="line.841"></a> -<span class="sourceLineNo">842</span><a name="line.842"></a> -<span class="sourceLineNo">843</span> @Override<a name="line.843"></a> -<span class="sourceLineNo">844</span> protected ExecuteProceduresResponse sendRequest(final ServerName serverName,<a name="line.844"></a> -<span class="sourceLineNo">845</span> final ExecuteProceduresRequest request) throws IOException {<a name="line.845"></a> -<span class="sourceLineNo">846</span> return mockRsExec.sendRequest(serverName, request);<a name="line.846"></a> -<span class="sourceLineNo">847</span> }<a name="line.847"></a> -<span class="sourceLineNo">848</span> }<a name="line.848"></a> -<span class="sourceLineNo">849</span> }<a name="line.849"></a> -<span class="sourceLineNo">850</span><a name="line.850"></a> -<span class="sourceLineNo">851</span> private void collectAssignmentManagerMetrics() {<a name="line.851"></a> -<span class="sourceLineNo">852</span> assignSubmittedCount = assignProcMetrics.getSubmittedCounter().getCount();<a name="line.852"></a> -<span class="sourceLineNo">853</span> assignFailedCount = assignProcMetrics.getFailedCounter().getCount();<a name="line.853"></a> -<span class="sourceLineNo">854</span> unassignSubmittedCount = unassignProcMetrics.getSubmittedCounter().getCount();<a name="line.854"></a> -<span class="sourceLineNo">855</span> unassignFailedCount = unassignProcMetrics.getFailedCounter().getCount();<a name="line.855"></a> -<span class="sourceLineNo">856</span> }<a name="line.856"></a> -<span class="sourceLineNo">857</span>}<a name="line.857"></a> +<span class="sourceLineNo">832</span> public void setMockRsExecutor(final MockRSExecutor mockRsExec) {<a name="line.832"></a> +<span class="sourceLineNo">833</span> this.mockRsExec = mockRsExec;<a name="line.833"></a> +<span class="sourceLineNo">834</span> }<a name="line.834"></a> +<span class="sourceLineNo">835</span><a name="line.835"></a> +<span class="sourceLineNo">836</span> @Override<a name="line.836"></a> +<span class="sourceLineNo">837</span> protected void remoteDispatch(ServerName serverName, Set<RemoteProcedure> remoteProcedures) {<a name="line.837"></a> +<span class="sourceLineNo">838</span> submitTask(new MockRemoteCall(serverName, remoteProcedures));<a name="line.838"></a> +<span class="sourceLineNo">839</span> }<a name="line.839"></a> +<span class="sourceLineNo">840</span><a name="line.840"></a> +<span class="sourceLineNo">841</span> private class MockRemoteCall extends ExecuteProceduresRemoteCall {<a name="line.841"></a> +<span class="sourceLineNo">842</span> public MockRemoteCall(final ServerName serverName,<a name="line.842"></a> +<span class="sourceLineNo">843</span> final Set<RemoteProcedure> operations) {<a name="line.843"></a> +<span class="sourceLineNo">844</span> super(serverName, operations);<a name="line.844"></a> +<span class="sourceLineNo">845</span> }<a name="line.845"></a> +<span class="sourceLineNo">846</span><a name="line.846"></a> +<span class="sourceLineNo">847</span> @Override<a name="line.847"></a> +<span class="sourceLineNo">848</span> protected ExecuteProceduresResponse sendRequest(final ServerName serverName,<a name="line.848"></a> +<span class="sourceLineNo">849</span> final ExecuteProceduresRequest request) throws IOException {<a name="line.849"></a> +<span class="sourceLineNo">850</span> return mockRsExec.sendRequest(serverName, request);<a name="line.850"></a> +<span class="sourceLineNo">851</span> }<a name="line.851"></a> +<span class="sourceLineNo">852</span> }<a name="line.852"></a> +<span class="sourceLineNo">853</span> }<a name="line.853"></a> +<span class="sourceLineNo">854</span><a name="line.854"></a> +<span class="sourceLineNo">855</span> private void collectAssignmentManagerMetrics() {<a name="line.855"></a> +<span class="sourceLineNo">856</span> assignSubmittedCount = assignProcMetrics.getSubmittedCounter().getCount();<a name="line.856"></a> +<span class="sourceLineNo">857</span> assignFailedCount = assignProcMetrics.getFailedCounter().getCount();<a name="line.857"></a> +<span class="sourceLineNo">858</span> unassignSubmittedCount = unassignProcMetrics.getSubmittedCounter().getCount();<a name="line.858"></a> +<span class="sourceLineNo">859</span> unassignFailedCount = unassignProcMetrics.getFailedCounter().getCount();<a name="line.859"></a> +<span class="sourceLineNo">860</span> }<a name="line.860"></a> +<span class="sourceLineNo">861</span>}<a name="line.861"></a> http://git-wip-us.apache.org/repos/asf/hbase-site/blob/464fda73/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.MockRSExecutor.html ---------------------------------------------------------------------- diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.MockRSExecutor.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.MockRSExecutor.html index 42507a2..8b6dda3 100644 --- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.MockRSExecutor.html +++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.MockRSExecutor.html @@ -773,96 +773,100 @@ <span class="sourceLineNo">765</span> case 0: throw new ServerNotRunningYetException("wait on server startup");<a name="line.765"></a> <span class="sourceLineNo">766</span> case 1: throw new SocketTimeoutException("simulate socket timeout");<a name="line.766"></a> <span class="sourceLineNo">767</span> case 2: throw new RemoteException("java.io.IOException", "unexpected exception");<a name="line.767"></a> -<span class="sourceLineNo">768</span> }<a name="line.768"></a> -<span class="sourceLineNo">769</span> return super.sendRequest(server, req);<a name="line.769"></a> -<span class="sourceLineNo">770</span> }<a name="line.770"></a> -<span class="sourceLineNo">771</span><a name="line.771"></a> -<span class="sourceLineNo">772</span> @Override<a name="line.772"></a> -<span class="sourceLineNo">773</span> protected RegionOpeningState execOpenRegion(final ServerName server, RegionOpenInfo openReq)<a name="line.773"></a> -<span class="sourceLineNo">774</span> throws IOException {<a name="line.774"></a> -<span class="sourceLineNo">775</span> switch (rand.nextInt(6)) {<a name="line.775"></a> -<span class="sourceLineNo">776</span> case 0:<a name="line.776"></a> -<span class="sourceLineNo">777</span> LOG.info("Return OPENED response");<a name="line.777"></a> -<span class="sourceLineNo">778</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.778"></a> -<span class="sourceLineNo">779</span> return OpenRegionResponse.RegionOpeningState.OPENED;<a name="line.779"></a> -<span class="sourceLineNo">780</span> case 1:<a name="line.780"></a> -<span class="sourceLineNo">781</span> LOG.info("Return transition report that OPENED/ALREADY_OPENED response");<a name="line.781"></a> -<span class="sourceLineNo">782</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.782"></a> -<span class="sourceLineNo">783</span> return OpenRegionResponse.RegionOpeningState.ALREADY_OPENED;<a name="line.783"></a> -<span class="sourceLineNo">784</span> case 2:<a name="line.784"></a> -<span class="sourceLineNo">785</span> LOG.info("Return transition report that FAILED_OPEN/FAILED_OPENING response");<a name="line.785"></a> -<span class="sourceLineNo">786</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.FAILED_OPEN);<a name="line.786"></a> -<span class="sourceLineNo">787</span> return OpenRegionResponse.RegionOpeningState.FAILED_OPENING;<a name="line.787"></a> -<span class="sourceLineNo">788</span> }<a name="line.788"></a> -<span class="sourceLineNo">789</span> // The procedure on master will just hang forever because nothing comes back<a name="line.789"></a> -<span class="sourceLineNo">790</span> // from the RS in this case.<a name="line.790"></a> -<span class="sourceLineNo">791</span> LOG.info("Return null as response; means proc stuck so we send in a crash report after a few seconds...");<a name="line.791"></a> -<span class="sourceLineNo">792</span> executor.schedule(new Runnable() {<a name="line.792"></a> -<span class="sourceLineNo">793</span> @Override<a name="line.793"></a> -<span class="sourceLineNo">794</span> public void run() {<a name="line.794"></a> -<span class="sourceLineNo">795</span> LOG.info("Delayed CRASHING of " + server);<a name="line.795"></a> -<span class="sourceLineNo">796</span> doCrash(server);<a name="line.796"></a> -<span class="sourceLineNo">797</span> }<a name="line.797"></a> -<span class="sourceLineNo">798</span> }, 5, TimeUnit.SECONDS);<a name="line.798"></a> -<span class="sourceLineNo">799</span> return null;<a name="line.799"></a> -<span class="sourceLineNo">800</span> }<a name="line.800"></a> -<span class="sourceLineNo">801</span><a name="line.801"></a> -<span class="sourceLineNo">802</span> @Override<a name="line.802"></a> -<span class="sourceLineNo">803</span> protected CloseRegionResponse execCloseRegion(ServerName server, byte[] regionName)<a name="line.803"></a> -<span class="sourceLineNo">804</span> throws IOException {<a name="line.804"></a> -<span class="sourceLineNo">805</span> CloseRegionResponse.Builder resp = CloseRegionResponse.newBuilder();<a name="line.805"></a> -<span class="sourceLineNo">806</span> boolean closed = rand.nextBoolean();<a name="line.806"></a> -<span class="sourceLineNo">807</span> if (closed) {<a name="line.807"></a> -<span class="sourceLineNo">808</span> RegionInfo hri = am.getRegionInfo(regionName);<a name="line.808"></a> -<span class="sourceLineNo">809</span> sendTransitionReport(server, ProtobufUtil.toRegionInfo(hri), TransitionCode.CLOSED);<a name="line.809"></a> -<span class="sourceLineNo">810</span> }<a name="line.810"></a> -<span class="sourceLineNo">811</span> resp.setClosed(closed);<a name="line.811"></a> -<span class="sourceLineNo">812</span> return resp.build();<a name="line.812"></a> -<span class="sourceLineNo">813</span> }<a name="line.813"></a> -<span class="sourceLineNo">814</span> }<a name="line.814"></a> -<span class="sourceLineNo">815</span><a name="line.815"></a> -<span class="sourceLineNo">816</span> private interface MockRSExecutor {<a name="line.816"></a> -<span class="sourceLineNo">817</span> ExecuteProceduresResponse sendRequest(ServerName server, ExecuteProceduresRequest req)<a name="line.817"></a> -<span class="sourceLineNo">818</span> throws IOException;<a name="line.818"></a> -<span class="sourceLineNo">819</span> }<a name="line.819"></a> -<span class="sourceLineNo">820</span><a name="line.820"></a> -<span class="sourceLineNo">821</span> private class MockRSProcedureDispatcher extends RSProcedureDispatcher {<a name="line.821"></a> -<span class="sourceLineNo">822</span> private MockRSExecutor mockRsExec;<a name="line.822"></a> -<span class="sourceLineNo">823</span><a name="line.823"></a> -<span class="sourceLineNo">824</span> public MockRSProcedureDispatcher(final MasterServices master) {<a name="line.824"></a> -<span class="sourceLineNo">825</span> super(master);<a name="line.825"></a> -<span class="sourceLineNo">826</span> }<a name="line.826"></a> +<span class="sourceLineNo">768</span> default:<a name="line.768"></a> +<span class="sourceLineNo">769</span> // fall out<a name="line.769"></a> +<span class="sourceLineNo">770</span> }<a name="line.770"></a> +<span class="sourceLineNo">771</span> return super.sendRequest(server, req);<a name="line.771"></a> +<span class="sourceLineNo">772</span> }<a name="line.772"></a> +<span class="sourceLineNo">773</span><a name="line.773"></a> +<span class="sourceLineNo">774</span> @Override<a name="line.774"></a> +<span class="sourceLineNo">775</span> protected RegionOpeningState execOpenRegion(final ServerName server, RegionOpenInfo openReq)<a name="line.775"></a> +<span class="sourceLineNo">776</span> throws IOException {<a name="line.776"></a> +<span class="sourceLineNo">777</span> switch (rand.nextInt(6)) {<a name="line.777"></a> +<span class="sourceLineNo">778</span> case 0:<a name="line.778"></a> +<span class="sourceLineNo">779</span> LOG.info("Return OPENED response");<a name="line.779"></a> +<span class="sourceLineNo">780</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.780"></a> +<span class="sourceLineNo">781</span> return OpenRegionResponse.RegionOpeningState.OPENED;<a name="line.781"></a> +<span class="sourceLineNo">782</span> case 1:<a name="line.782"></a> +<span class="sourceLineNo">783</span> LOG.info("Return transition report that OPENED/ALREADY_OPENED response");<a name="line.783"></a> +<span class="sourceLineNo">784</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.OPENED);<a name="line.784"></a> +<span class="sourceLineNo">785</span> return OpenRegionResponse.RegionOpeningState.ALREADY_OPENED;<a name="line.785"></a> +<span class="sourceLineNo">786</span> case 2:<a name="line.786"></a> +<span class="sourceLineNo">787</span> LOG.info("Return transition report that FAILED_OPEN/FAILED_OPENING response");<a name="line.787"></a> +<span class="sourceLineNo">788</span> sendTransitionReport(server, openReq.getRegion(), TransitionCode.FAILED_OPEN);<a name="line.788"></a> +<span class="sourceLineNo">789</span> return OpenRegionResponse.RegionOpeningState.FAILED_OPENING;<a name="line.789"></a> +<span class="sourceLineNo">790</span> default:<a name="line.790"></a> +<span class="sourceLineNo">791</span> // fall out<a name="line.791"></a> +<span class="sourceLineNo">792</span> }<a name="line.792"></a> +<span class="sourceLineNo">793</span> // The procedure on master will just hang forever because nothing comes back<a name="line.793"></a> +<span class="sourceLineNo">794</span> // from the RS in this case.<a name="line.794"></a> +<span class="sourceLineNo">795</span> LOG.info("Return null as response; means proc stuck so we send in a crash report after a few seconds...");<a name="line.795"></a> +<span class="sourceLineNo">796</span> executor.schedule(new Runnable() {<a name="line.796"></a> +<span class="sourceLineNo">797</span> @Override<a name="line.797"></a> +<span class="sourceLineNo">798</span> public void run() {<a name="line.798"></a> +<span class="sourceLineNo">799</span> LOG.info("Delayed CRASHING of " + server);<a name="line.799"></a> +<span class="sourceLineNo">800</span> doCrash(server);<a name="line.800"></a> +<span class="sourceLineNo">801</span> }<a name="line.801"></a> +<span class="sourceLineNo">802</span> }, 5, TimeUnit.SECONDS);<a name="line.802"></a> +<span class="sourceLineNo">803</span> return null;<a name="line.803"></a> +<span class="sourceLineNo">804</span> }<a name="line.804"></a> +<span class="sourceLineNo">805</span><a name="line.805"></a> +<span class="sourceLineNo">806</span> @Override<a name="line.806"></a> +<span class="sourceLineNo">807</span> protected CloseRegionResponse execCloseRegion(ServerName server, byte[] regionName)<a name="line.807"></a> +<span class="sourceLineNo">808</span> throws IOException {<a name="line.808"></a> +<span class="sourceLineNo">809</span> CloseRegionResponse.Builder resp = CloseRegionResponse.newBuilder();<a name="line.809"></a> +<span class="sourceLineNo">810</span> boolean closed = rand.nextBoolean();<a name="line.810"></a> +<span class="sourceLineNo">811</span> if (closed) {<a name="line.811"></a> +<span class="sourceLineNo">812</span> RegionInfo hri = am.getRegionInfo(regionName);<a name="line.812"></a> +<span class="sourceLineNo">813</span> sendTransitionReport(server, ProtobufUtil.toRegionInfo(hri), TransitionCode.CLOSED);<a name="line.813"></a> +<span class="sourceLineNo">814</span> }<a name="line.814"></a> +<span class="sourceLineNo">815</span> resp.setClosed(closed);<a name="line.815"></a> +<span class="sourceLineNo">816</span> return resp.build();<a name="line.816"></a> +<span class="sourceLineNo">817</span> }<a name="line.817"></a> +<span class="sourceLineNo">818</span> }<a name="line.818"></a> +<span class="sourceLineNo">819</span><a name="line.819"></a> +<span class="sourceLineNo">820</span> private interface MockRSExecutor {<a name="line.820"></a> +<span class="sourceLineNo">821</span> ExecuteProceduresResponse sendRequest(ServerName server, ExecuteProceduresRequest req)<a name="line.821"></a> +<span class="sourceLineNo">822</span> throws IOException;<a name="line.822"></a> +<span class="sourceLineNo">823</span> }<a name="line.823"></a> +<span class="sourceLineNo">824</span><a name="line.824"></a> +<span class="sourceLineNo">825</span> private class MockRSProcedureDispatcher extends RSProcedureDispatcher {<a name="line.825"></a> +<span class="sourceLineNo">826</span> private MockRSExecutor mockRsExec;<a name="line.826"></a> <span class="sourceLineNo">827</span><a name="line.827"></a> -<span class="sourceLineNo">828</span> public void setMockRsExecutor(final MockRSExecutor mockRsExec) {<a name="line.828"></a> -<span class="sourceLineNo">829</span> this.mockRsExec = mockRsExec;<a name="line.829"></a> +<span class="sourceLineNo">828</span> public MockRSProcedureDispatcher(final MasterServices master) {<a name="line.828"></a> +<span class="sourceLineNo">829</span> super(master);<a name="line.829"></a> <span class="sourceLineNo">830</span> }<a name="line.830"></a> <span class="sourceLineNo">831</span><a name="line.831"></a> -<span class="sourceLineNo">832</span> @Override<a name="line.832"></a> -<span class="sourceLineNo">833</span> protected void remoteDispatch(ServerName serverName, Set<RemoteProcedure> remoteProcedures) {<a name="line.833"></a> -<span class="sourceLineNo">834</span> submitTask(new MockRemoteCall(serverName, remoteProcedures));<a name="line.834"></a> -<span class="sourceLineNo">835</span> }<a name="line.835"></a> -<span class="sourceLineNo">836</span><a name="line.836"></a> -<span class="sourceLineNo">837</span> private class MockRemoteCall extends ExecuteProceduresRemoteCall {<a name="line.837"></a> -<span class="sourceLineNo">838</span> public MockRemoteCall(final ServerName serverName,<a name="line.838"></a> -<span class="sourceLineNo">839</span> final Set<RemoteProcedure> operations) {<a name="line.839"></a> -<span class="sourceLineNo">840</span> super(serverName, operations);<a name="line.840"></a> -<span class="sourceLineNo">841</span> }<a name="line.841"></a> -<span class="sourceLineNo">842</span><a name="line.842"></a> -<span class="sourceLineNo">843</span> @Override<a name="line.843"></a> -<span class="sourceLineNo">844</span> protected ExecuteProceduresResponse sendRequest(final ServerName serverName,<a name="line.844"></a> -<span class="sourceLineNo">845</span> final ExecuteProceduresRequest request) throws IOException {<a name="line.845"></a> -<span class="sourceLineNo">846</span> return mockRsExec.sendRequest(serverName, request);<a name="line.846"></a> -<span class="sourceLineNo">847</span> }<a name="line.847"></a> -<span class="sourceLineNo">848</span> }<a name="line.848"></a> -<span class="sourceLineNo">849</span> }<a name="line.849"></a> -<span class="sourceLineNo">850</span><a name="line.850"></a> -<span class="sourceLineNo">851</span> private void collectAssignmentManagerMetrics() {<a name="line.851"></a> -<span class="sourceLineNo">852</span> assignSubmittedCount = assignProcMetrics.getSubmittedCounter().getCount();<a name="line.852"></a> -<span class="sourceLineNo">853</span> assignFailedCount = assignProcMetrics.getFailedCounter().getCount();<a name="line.853"></a> -<span class="sourceLineNo">854</span> unassignSubmittedCount = unassignProcMetrics.getSubmittedCounter().getCount();<a name="line.854"></a> -<span class="sourceLineNo">855</span> unassignFailedCount = unassignProcMetrics.getFailedCounter().getCount();<a name="line.855"></a> -<span class="sourceLineNo">856</span> }<a name="line.856"></a> -<span class="sourceLineNo">857</span>}<a name="line.857"></a> +<span class="sourceLineNo">832</span> public void setMockRsExecutor(final MockRSExecutor mockRsExec) {<a name="line.832"></a> +<span class="sourceLineNo">833</span> this.mockRsExec = mockRsExec;<a name="line.833"></a> +<span class="sourceLineNo">834</span> }<a name="line.834"></a> +<span class="sourceLineNo">835</span><a name="line.835"></a> +<span class="sourceLineNo">836</span> @Override<a name="line.836"></a> +<span class="sourceLineNo">837</span> protected void remoteDispatch(ServerName serverName, Set<RemoteProcedure> remoteProcedures) {<a name="line.837"></a> +<span class="sourceLineNo">838</span> submitTask(new MockRemoteCall(serverName, remoteProcedures));<a name="line.838"></a> +<span class="sourceLineNo">839</span> }<a name="line.839"></a> +<span class="sourceLineNo">840</span><a name="line.840"></a> +<span class="sourceLineNo">841</span> private class MockRemoteCall extends ExecuteProceduresRemoteCall {<a name="line.841"></a> +<span class="sourceLineNo">842</span> public MockRemoteCall(final ServerName serverName,<a name="line.842"></a> +<span class="sourceLineNo">843</span> final Set<RemoteProcedure> operations) {<a name="line.843"></a> +<span class="sourceLineNo">844</span> super(serverName, operations);<a name="line.844"></a> +<span class="sourceLineNo">845</span> }<a name="line.845"></a> +<span class="sourceLineNo">846</span><a name="line.846"></a> +<span class="sourceLineNo">847</span> @Override<a name="line.847"></a> +<span class="sourceLineNo">848</span> protected ExecuteProceduresResponse sendRequest(final ServerName serverName,<a name="line.848"></a> +<span class="sourceLineNo">849</span> final ExecuteProceduresRequest request) throws IOException {<a name="line.849"></a> +<span class="sourceLineNo">850</span> return mockRsExec.sendRequest(serverName, request);<a name="line.850"></a> +<span class="sourceLineNo">851</span> }<a name="line.851"></a> +<span class="sourceLineNo">852</span> }<a name="line.852"></a> +<span class="sourceLineNo">853</span> }<a name="line.853"></a> +<span class="sourceLineNo">854</span><a name="line.854"></a> +<span class="sourceLineNo">855</span> private void collectAssignmentManagerMetrics() {<a name="line.855"></a> +<span class="sourceLineNo">856</span> assignSubmittedCount = assignProcMetrics.getSubmittedCounter().getCount();<a name="line.856"></a> +<span class="sourceLineNo">857</span> assignFailedCount = assignProcMetrics.getFailedCounter().getCount();<a name="line.857"></a> +<span class="sourceLineNo">858</span> unassignSubmittedCount = unassignProcMetrics.getSubmittedCounter().getCount();<a name="line.858"></a> +<span class="sourceLineNo">859</span> unassignFailedCount = unassignProcMetrics.getFailedCounter().getCount();<a name="line.859"></a> +<span class="sourceLineNo">860</span> }<a name="line.860"></a> +<span class="sourceLineNo">861</span>}<a name="line.861"></a>