Details
Description
In a HDFS HA cluster with consistent reads enabled (HDFS-12943), clients could be using either ObserverReadProxyProvider, ConfiguredProxyProvider, or something else. Since observer is just a special type of SBN and we allow transitions between them, a client NOT using ObserverReadProxyProvider will need to have dfs.ha.namenodes.<nameservice> include all NameNodes in the cluster, and therefore, it may send request to a observer node.
For this case, we should check whether the stateId in the incoming RPC header is set or not, and throw an StandbyException when it is not.
Attachments
Attachments
- HDFS-14660.000.patch
- 4 kB
- Chao Sun
- HDFS-14660.001.patch
- 5 kB
- Chao Sun
- HDFS-14660.002.patch
- 6 kB
- Chao Sun
- HDFS-14660.003.patch
- 6 kB
- Chao Sun
- HDFS-14660.004.patch
- 6 kB
- Chao Sun
Issue Links
- duplicates
-
HDFS-14636 SBN : If you configure the default proxy provider still read Request going to Observer namenode only.
- Resolved
Activity
Oops didn't see the existing JIRA. RANith let me know if you intend to work on that one. I'll be happy to close this one as duplicate if so.
Thanx Chao!!!
For this case, we should check whether the stateId in the incoming RPC header is set or not, and throw an StandbyException when it is not.
I guess there is a specific behavior too, for when state ID isn't set i.e -1, The Observer serves the request without being bothered of the state. I am not sure if somebody had a use case for that. But to handle this scenario. This behavior would have to be changed.
Well there is discussion at HDFS-14636, You may follow up there, with some proposals or some solution, Well I guess xkrogen had some concerns there, Can conclude once he confirms.
Hey ayushtkn, thanks for pinging me and sorry for not responding to your last comment. I agree with you that the behavior can be misleading; it is a situation that we didn't think through fully when we were working on the feature (we use IPFailoverProxyProvider which doesn't have this issue).
I guess there is a specific behavior too, for when state ID isn't set i.e -1, The Observer serves the request without being bothered of the state. I am not sure if somebody had a use case for that. But to handle this scenario. This behavior would have to be changed.
Since all negative state IDs are invalid, perhaps we can define a special constant value (-2 ?) for indicating that the observer should serve the request without state checking, and clients which haven't set an ID at all (-1) can be rejected outright.
Thanx xkrogen
Since all negative state IDs are invalid, perhaps we can define a special constant value (-2 ?) for indicating that the observer should serve the request without state checking, and clients which haven't set an ID at all (-1) can be rejected outright.
Seems fair enough to me. This way we could provide a way to get the old behavior too.
I think the special value can be handled separately. In this case we just need to check whether the stateId is set or not (via RpcHeaderProtos#hasStateId which checks a special field). We should be able to safely assume that if it is not set, request should be rejected by observer.
We can also check the stateId using "Server.getCurCall().get().getClientStateId()". From the Server it will give us the StateId.
In this case we just need to check whether the stateId is set or not (via RpcHeaderProtos#hasStateId which checks a special field).
+1 to this csun, this seems like the cleanest way to check if it has been set. I forgot that protobuf provides this for us.
we just need to check whether the stateId is set or not (via RpcHeaderProtos#hasStateId which checks a special field)
Seems Fair Enough.
For the special value we may raise separate JIRA.(Just we should ensure it gets done too.)
Thanks everyone for the discussion! submitted patch v0. Appreciated if you could review this.
For the special value we may raise separate JIRA.(Just we should ensure it gets done too.)
ayushtkn: could you clarify a little bit on this use case? is the purpose to let client read stale data from observer?
If so, you can already achieve this with msync, no? just don't do msync from client side.
-1 overall |
Vote | Subsystem | Runtime | Comment |
---|---|---|---|
0 | reexec | 0m 49s | Docker mode activated. |
Prechecks | |||
+1 | @author | 0m 0s | The patch does not contain any @author tags. |
+1 | test4tests | 0m 0s | The patch appears to include 1 new or modified test files. |
trunk Compile Tests | |||
+1 | mvninstall | 19m 11s | trunk passed |
+1 | compile | 1m 4s | trunk passed |
+1 | checkstyle | 0m 42s | trunk passed |
+1 | mvnsite | 1m 6s | trunk passed |
+1 | shadedclient | 13m 7s | branch has no errors when building and testing our client artifacts. |
+1 | findbugs | 2m 3s | trunk passed |
+1 | javadoc | 0m 51s | trunk passed |
Patch Compile Tests | |||
+1 | mvninstall | 0m 59s | the patch passed |
+1 | compile | 0m 56s | the patch passed |
+1 | javac | 0m 56s | the patch passed |
+1 | checkstyle | 0m 38s | the patch passed |
+1 | mvnsite | 1m 2s | the patch passed |
+1 | whitespace | 0m 0s | The patch has no whitespace issues. |
+1 | shadedclient | 12m 22s | patch has no errors when building and testing our client artifacts. |
+1 | findbugs | 2m 11s | the patch passed |
+1 | javadoc | 0m 47s | the patch passed |
Other Tests | |||
-1 | unit | 104m 58s | hadoop-hdfs in the patch failed. |
+1 | asflicense | 0m 41s | The patch does not generate ASF License warnings. |
163m 16s |
Reason | Tests |
---|---|
Failed junit tests | hadoop.hdfs.server.namenode.ha.TestConsistentReadsObserver |
hadoop.hdfs.server.datanode.TestBPOfferService | |
hadoop.hdfs.server.datanode.TestDirectoryScanner | |
hadoop.hdfs.server.balancer.TestBalancerWithMultipleNameNodes |
Subsystem | Report/Notes |
---|---|
Docker | Client=18.09.7 Server=18.09.7 Image:yetus/hadoop:bdbca0e53b4 |
JIRA Issue | |
JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12975355/HDFS-14660.000.patch |
Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle |
uname | Linux 562e76c87e05 4.15.0-52-generic #56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
Build tool | maven |
Personality | /testptch/patchprocess/precommit/personality/provided.sh |
git revision | trunk / acdb0a1 |
maven | version: Apache Maven 3.3.9 |
Default Java | 1.8.0_212 |
findbugs | v3.1.0-RC1 |
unit | https://builds.apache.org/job/PreCommit-HDFS-Build/27273/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt |
Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/27273/testReport/ |
Max. process+thread count | 2828 (vs. ulimit of 5500) |
modules | C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs |
Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/27273/console |
Powered by | Apache Yetus 0.8.0 http://yetus.apache.org |
This message was automatically generated.
Thanx csun for the patch.
If so, you can already achieve this with msync, no? just don't do msync from client side.
Now what I think, even if ObserverProxyProvider is set, and the client hasn't done msync, now the request goes to the Active, rather than from the observer? Earlier which used to go to observer and used to get served irrespective of the state at which the observer is. Maybe I need to check again. Correct me if wrong.
Regarding the value case, At present I don't think so, we have a prod use case for this. But since Erik quoted it, so just wanted to ensure that being done.
-1 overall |
Vote | Subsystem | Runtime | Comment |
---|---|---|---|
0 | reexec | 0m 39s | Docker mode activated. |
Prechecks | |||
+1 | @author | 0m 0s | The patch does not contain any @author tags. |
+1 | test4tests | 0m 0s | The patch appears to include 1 new or modified test files. |
trunk Compile Tests | |||
+1 | mvninstall | 19m 40s | trunk passed |
+1 | compile | 1m 4s | trunk passed |
+1 | checkstyle | 0m 46s | trunk passed |
+1 | mvnsite | 1m 17s | trunk passed |
+1 | shadedclient | 13m 48s | branch has no errors when building and testing our client artifacts. |
+1 | findbugs | 2m 19s | trunk passed |
+1 | javadoc | 0m 53s | trunk passed |
Patch Compile Tests | |||
+1 | mvninstall | 1m 6s | the patch passed |
+1 | compile | 1m 5s | the patch passed |
+1 | javac | 1m 5s | the patch passed |
+1 | checkstyle | 0m 41s | the patch passed |
+1 | mvnsite | 1m 12s | the patch passed |
+1 | whitespace | 0m 0s | The patch has no whitespace issues. |
+1 | shadedclient | 12m 57s | patch has no errors when building and testing our client artifacts. |
+1 | findbugs | 2m 30s | the patch passed |
+1 | javadoc | 0m 54s | the patch passed |
Other Tests | |||
-1 | unit | 109m 39s | hadoop-hdfs in the patch failed. |
+1 | asflicense | 0m 35s | The patch does not generate ASF License warnings. |
170m 49s |
Reason | Tests |
---|---|
Failed junit tests | hadoop.hdfs.server.datanode.TestDirectoryScanner |
Subsystem | Report/Notes |
---|---|
Docker | Client=18.09.7 Server=18.09.7 Image:yetus/hadoop:bdbca0e53b4 |
JIRA Issue | |
JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12975365/HDFS-14660.001.patch |
Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle |
uname | Linux 53543afee867 4.15.0-52-generic #56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
Build tool | maven |
Personality | /testptch/patchprocess/precommit/personality/provided.sh |
git revision | trunk / acdb0a1 |
maven | version: Apache Maven 3.3.9 |
Default Java | 1.8.0_212 |
findbugs | v3.1.0-RC1 |
unit | https://builds.apache.org/job/PreCommit-HDFS-Build/27274/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt |
Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/27274/testReport/ |
Max. process+thread count | 2860 (vs. ulimit of 5500) |
modules | C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs |
Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/27274/console |
Powered by | Apache Yetus 0.8.0 http://yetus.apache.org |
This message was automatically generated.
Now what I think, even if ObserverProxyProvider is set, and the client hasn't done msync, now the request goes to the Active, rather than from the observer? Earlier which used to go to observer and used to get served irrespective of the state at which the observer is. Maybe I need to check again. Correct me if wrong.
I think in this case, the client stateId will be smaller than that from server side, so observer will happily serve the requests.
Thanx csun for the pointer. Should be fair enough.
The overall fix LGTM.
Regarding the test. I guess we should assert the standby exception from the Observer, which is the actual intention, so as to be sure observer didn't serve when configured without observer proxy provider, and it serves when it is configured.
Moreover the transition to original states to make other tests unaffected should be in a finally block, so as any exception or failure in above part doesn't affect the other tests.
if (HAServiceState.OBSERVER.equals(namesystem.getState()) &&
!header.hasStateId()) {
Nothing major but may be the if condition can be flipped checking state id would be cheaper than checking the state. Apart from this and modifications to the test, to check standbyexception, else LGTM.
Thanks ayushtkn and Harsha1206 for the feedback!
Regarding the test. I guess we should assert the standby exception from the Observer, which is the actual intention, so as to be sure observer didn't serve when configured without observer proxy provider, and it serves when it is configured.
I guess the current test covers this by checking that when hitting observer, the client fails over and goes to the active. It checks the request is served by the observer since otherwise the number of files from `listStatus` should be 0, not 1. I agree ideally it might be better to explicitly check this is a StandbyException from observer, but I'm lacking ideas on how to do that in a simple manner. Do you know happen to know anyway that can allow me to do that easily?
The comment on the ordering and finally block looks good. I'll make the change.
The problem is request doesn't always goes to Observer, it was quite random, some times to observer, some time to active. So having it verify it went to active doesn't seems complete. As it could be held true in the previous scenario too. So asserting the exception seems to be the verification point for the fix.
Give a check, if you switch active off, then you can get the request served with ObserverProxyProvider but not with other.
Will even try to spare time, to check if I could help write one to help!!!
ayushtkn I updated the test case by testing the StandbyException. Can you take another look? Thanks.
-1 overall |
Vote | Subsystem | Runtime | Comment |
---|---|---|---|
0 | reexec | 0m 38s | Docker mode activated. |
Prechecks | |||
+1 | @author | 0m 0s | The patch does not contain any @author tags. |
+1 | test4tests | 0m 0s | The patch appears to include 1 new or modified test files. |
trunk Compile Tests | |||
+1 | mvninstall | 19m 0s | trunk passed |
+1 | compile | 1m 7s | trunk passed |
+1 | checkstyle | 0m 46s | trunk passed |
+1 | mvnsite | 1m 8s | trunk passed |
+1 | shadedclient | 13m 36s | branch has no errors when building and testing our client artifacts. |
+1 | findbugs | 2m 9s | trunk passed |
+1 | javadoc | 0m 52s | trunk passed |
Patch Compile Tests | |||
+1 | mvninstall | 1m 2s | the patch passed |
+1 | compile | 0m 59s | the patch passed |
+1 | javac | 0m 59s | the patch passed |
+1 | checkstyle | 0m 37s | the patch passed |
+1 | mvnsite | 1m 3s | the patch passed |
+1 | whitespace | 0m 0s | The patch has no whitespace issues. |
+1 | shadedclient | 12m 39s | patch has no errors when building and testing our client artifacts. |
+1 | findbugs | 2m 13s | the patch passed |
+1 | javadoc | 0m 49s | the patch passed |
Other Tests | |||
-1 | unit | 121m 44s | hadoop-hdfs in the patch failed. |
+1 | asflicense | 0m 44s | The patch does not generate ASF License warnings. |
180m 53s |
Reason | Tests |
---|---|
Failed junit tests | hadoop.hdfs.server.datanode.TestDataNodeErasureCodingMetrics |
hadoop.hdfs.tools.TestDFSZKFailoverController | |
hadoop.hdfs.server.namenode.ha.TestBootstrapStandby | |
hadoop.hdfs.server.namenode.ha.TestHAAppend |
Subsystem | Report/Notes |
---|---|
Docker | Client=18.09.7 Server=18.09.7 Image:yetus/hadoop:bdbca0e53b4 |
JIRA Issue | |
JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12975931/HDFS-14660.002.patch |
Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle |
uname | Linux a404f4501600 4.15.0-52-generic #56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
Build tool | maven |
Personality | /testptch/patchprocess/precommit/personality/provided.sh |
git revision | trunk / 3426777 |
maven | version: Apache Maven 3.3.9 |
Default Java | 1.8.0_212 |
findbugs | v3.1.0-RC1 |
unit | https://builds.apache.org/job/PreCommit-HDFS-Build/27305/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt |
Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/27305/testReport/ |
Max. process+thread count | 2524 (vs. ulimit of 5500) |
modules | C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs |
Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/27305/console |
Powered by | Apache Yetus 0.8.0 http://yetus.apache.org |
This message was automatically generated.
-1 overall |
Vote | Subsystem | Runtime | Comment |
---|---|---|---|
0 | reexec | 0m 46s | Docker mode activated. |
Prechecks | |||
+1 | @author | 0m 0s | The patch does not contain any @author tags. |
+1 | test4tests | 0m 0s | The patch appears to include 1 new or modified test files. |
trunk Compile Tests | |||
+1 | mvninstall | 19m 13s | trunk passed |
+1 | compile | 1m 0s | trunk passed |
+1 | checkstyle | 0m 44s | trunk passed |
+1 | mvnsite | 1m 7s | trunk passed |
+1 | shadedclient | 13m 27s | branch has no errors when building and testing our client artifacts. |
+1 | findbugs | 2m 6s | trunk passed |
+1 | javadoc | 0m 51s | trunk passed |
Patch Compile Tests | |||
+1 | mvninstall | 1m 0s | the patch passed |
+1 | compile | 0m 56s | the patch passed |
+1 | javac | 0m 56s | the patch passed |
+1 | checkstyle | 0m 36s | the patch passed |
+1 | mvnsite | 1m 2s | the patch passed |
+1 | whitespace | 0m 0s | The patch has no whitespace issues. |
+1 | shadedclient | 13m 28s | patch has no errors when building and testing our client artifacts. |
+1 | findbugs | 2m 23s | the patch passed |
+1 | javadoc | 0m 53s | the patch passed |
Other Tests | |||
-1 | unit | 122m 3s | hadoop-hdfs in the patch failed. |
+1 | asflicense | 0m 31s | The patch does not generate ASF License warnings. |
182m 14s |
Reason | Tests |
---|---|
Failed junit tests | hadoop.hdfs.tools.TestDFSZKFailoverController |
hadoop.hdfs.server.datanode.TestBPOfferService |
Subsystem | Report/Notes |
---|---|
Docker | Client=18.09.7 Server=18.09.7 Image:yetus/hadoop:bdbca0e53b4 |
JIRA Issue | |
JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12975931/HDFS-14660.002.patch |
Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle |
uname | Linux 291edea606dc 4.15.0-52-generic #56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
Build tool | maven |
Personality | /testptch/patchprocess/precommit/personality/provided.sh |
git revision | trunk / 3426777 |
maven | version: Apache Maven 3.3.9 |
Default Java | 1.8.0_212 |
findbugs | v3.1.0-RC1 |
unit | https://builds.apache.org/job/PreCommit-HDFS-Build/27306/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt |
Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/27306/testReport/ |
Max. process+thread count | 2608 (vs. ulimit of 5500) |
modules | C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs |
Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/27306/console |
Powered by | Apache Yetus 0.8.0 http://yetus.apache.org |
This message was automatically generated.
Thanx csun for the patch, seems Harsha1206's comment for the if condition isn't addressed. Other than that the fix LGTM.
-1 overall |
Vote | Subsystem | Runtime | Comment |
---|---|---|---|
0 | reexec | 0m 46s | Docker mode activated. |
Prechecks | |||
+1 | @author | 0m 0s | The patch does not contain any @author tags. |
+1 | test4tests | 0m 0s | The patch appears to include 1 new or modified test files. |
trunk Compile Tests | |||
+1 | mvninstall | 18m 40s | trunk passed |
+1 | compile | 0m 58s | trunk passed |
+1 | checkstyle | 0m 41s | trunk passed |
+1 | mvnsite | 1m 7s | trunk passed |
+1 | shadedclient | 12m 31s | branch has no errors when building and testing our client artifacts. |
+1 | findbugs | 2m 1s | trunk passed |
+1 | javadoc | 0m 47s | trunk passed |
Patch Compile Tests | |||
+1 | mvninstall | 1m 0s | the patch passed |
+1 | compile | 0m 55s | the patch passed |
+1 | javac | 0m 55s | the patch passed |
-0 | checkstyle | 0m 35s | hadoop-hdfs-project/hadoop-hdfs: The patch generated 3 new + 0 unchanged - 0 fixed = 3 total (was 0) |
+1 | mvnsite | 0m 59s | the patch passed |
+1 | whitespace | 0m 0s | The patch has no whitespace issues. |
+1 | shadedclient | 11m 3s | patch has no errors when building and testing our client artifacts. |
+1 | findbugs | 2m 5s | the patch passed |
+1 | javadoc | 0m 44s | the patch passed |
Other Tests | |||
-1 | unit | 121m 57s | hadoop-hdfs in the patch failed. |
+1 | asflicense | 0m 33s | The patch does not generate ASF License warnings. |
177m 4s |
Reason | Tests |
---|---|
Failed junit tests | hadoop.hdfs.server.namenode.TestNameNodeMXBean |
Subsystem | Report/Notes |
---|---|
Docker | Client=19.03.1 Server=19.03.1 Image:yetus/hadoop:bdbca0e |
JIRA Issue | |
JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12976026/HDFS-14660.003.patch |
Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle |
uname | Linux be7a2786442d 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux |
Build tool | maven |
Personality | /testptch/patchprocess/precommit/personality/provided.sh |
git revision | trunk / 2fe450c |
maven | version: Apache Maven 3.3.9 |
Default Java | 1.8.0_212 |
findbugs | v3.1.0-RC1 |
checkstyle | https://builds.apache.org/job/PreCommit-HDFS-Build/27315/artifact/out/diff-checkstyle-hadoop-hdfs-project_hadoop-hdfs.txt |
unit | https://builds.apache.org/job/PreCommit-HDFS-Build/27315/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt |
Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/27315/testReport/ |
Max. process+thread count | 4039 (vs. ulimit of 10000) |
modules | C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs |
Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/27315/console |
Powered by | Apache Yetus 0.8.0 http://yetus.apache.org |
This message was automatically generated.
Guess some unused imports have got added, Checkstyle has complains. Give a check
-1 overall |
Vote | Subsystem | Runtime | Comment |
---|---|---|---|
0 | reexec | 0m 37s | Docker mode activated. |
Prechecks | |||
+1 | @author | 0m 0s | The patch does not contain any @author tags. |
+1 | test4tests | 0m 0s | The patch appears to include 1 new or modified test files. |
trunk Compile Tests | |||
+1 | mvninstall | 17m 36s | trunk passed |
+1 | compile | 1m 2s | trunk passed |
+1 | checkstyle | 0m 45s | trunk passed |
+1 | mvnsite | 1m 2s | trunk passed |
+1 | shadedclient | 11m 30s | branch has no errors when building and testing our client artifacts. |
+1 | findbugs | 1m 51s | trunk passed |
+1 | javadoc | 0m 49s | trunk passed |
Patch Compile Tests | |||
+1 | mvninstall | 0m 57s | the patch passed |
+1 | compile | 0m 52s | the patch passed |
+1 | javac | 0m 52s | the patch passed |
+1 | checkstyle | 0m 32s | the patch passed |
+1 | mvnsite | 0m 58s | the patch passed |
+1 | whitespace | 0m 0s | The patch has no whitespace issues. |
+1 | shadedclient | 10m 51s | patch has no errors when building and testing our client artifacts. |
+1 | findbugs | 2m 1s | the patch passed |
+1 | javadoc | 0m 42s | the patch passed |
Other Tests | |||
-1 | unit | 77m 29s | hadoop-hdfs in the patch failed. |
+1 | asflicense | 0m 39s | The patch does not generate ASF License warnings. |
130m 1s |
Reason | Tests |
---|---|
Failed junit tests | hadoop.hdfs.server.datanode.TestDataNodeVolumeFailure |
Subsystem | Report/Notes |
---|---|
Docker | Client=19.03.1 Server=19.03.1 Image:yetus/hadoop:bdbca0e |
JIRA Issue | |
JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12976056/HDFS-14660.004.patch |
Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle |
uname | Linux 50bb8a6fffc4 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux |
Build tool | maven |
Personality | /testptch/patchprocess/precommit/personality/provided.sh |
git revision | trunk / 2fe450c |
maven | version: Apache Maven 3.3.9 |
Default Java | 1.8.0_212 |
findbugs | v3.1.0-RC1 |
unit | https://builds.apache.org/job/PreCommit-HDFS-Build/27319/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt |
Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/27319/testReport/ |
Max. process+thread count | 4345 (vs. ulimit of 10000) |
modules | C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs |
Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/27319/console |
Powered by | Apache Yetus 0.8.0 http://yetus.apache.org |
This message was automatically generated.
Committed to trunk.
Thanx csun for the contribution.
Harsha1206 and xkrogen for the reviews!!!
FAILURE: Integrated in Jenkins build Hadoop-trunk-Commit #16995 (See https://builds.apache.org/job/Hadoop-trunk-Commit/16995/)
HDFS-14660. [SBN Read] ObserverNameNode should throw StandbyException (ayushsaxena: rev 02bd02b5af761b6b24fdc4e8e7ede72a51870d5b)
- (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/GlobalStateIdContext.java
- (edit) hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestConsistentReadsObserver.java
Thanks for committing it ayushtkn! could you also help to commit this to branch 2? I think we'll need this in the upcoming 2.10 as well.
Sorry Didn't knew SBN Went till branch 2,
Guess there are conflicts in cherry-picking the same patch to back branches,
csun Can you reopen and upload patch for the other branches?
ayushtkn my bad - we'll need to wait until HDFS-14204 is committed. I'll submit a patch for branch 2 after that. Thanks.
Anything similar to problem reported at
HDFS-14636