You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by Bruce Schuchardt <bs...@pivotal.io> on 2015/11/13 19:06:09 UTC

Review Request 40301: GEODE-77: faster initiation of suspect processing on crashed member

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/40301/
-----------------------------------------------------------

Review request for geode, anilkumar gingade, Hitesh Khamesra, Jason Huynh, Jianxia Chen, and Lynn Gallinat.


Repository: geode


Description
-------

TCPConduit's Connection.java was not initiating suspect processing when a member crashed.  This was due to not having the check in the normal (amt < 0) check for a socket error.

In testing this fix with ReconnectDUnitTest I found that the change exposed some problems in GMSJoinLeave that were keeping reconnect from happening as fast as it should:

1. The reconnecting member was processing a RemoveMember message intended for its old incarnation.  This caused it to invoke forceDisconnect() but the concurrent join() attempt did not notice this and continued to try to connect until it timed out.

2. ViewCreator was removing the new member from the view if its old ID was being declared crashed in the same view because of the way InternalDistributedMember.compareTo() works with viewless identifiers.

This change-set also gets rid of a bunch of references to JGroups scattered around in the code and removes references to JGroups classes from GMSMembershipManager, moving the code requiring these refs to the quorum checker.


Diffs
-----

  gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/DistributionMessage.java 83ef91ddba6935ab83181cf533d8f60292e983b2 
  gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/ReplyMessage.java 98d2365860ae3f7b3a0afca77f297fa5146c2af2 
  gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/ShutdownMessage.java bdf359940ea3cc60026d4c6e9c61aaa0a6f88adc 
  gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/StartupMessage.java 4bdf99f6d8decff2d2c6e16beaec4b7756780da5 
  gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/StartupResponseMessage.java c9b6baf9e5ecf9f7a65509ea11a927eeaecd4857 
  gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/WaitForViewInstallation.java 1ba0ed1089d917bc3e17be652715091bf901826d 
  gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/QuorumChecker.java 3d8d261995923534779c016deed184e2ccfd3463 
  gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/GMSMember.java 51a166b0ede46da436df03ccd7ca9b3e1838f705 
  gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/GMSMemberFactory.java 59f9debb105a9f0834e5f860e45980c67afeebd2 
  gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/fd/GMSHealthMonitor.java b9ec83a0b2ea7eef456cc83c6d91b315a074ebd6 
  gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java 500131bcf63274e0941f2e8f6deeb2a6253ecc11 
  gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/GMSQuorumChecker.java cf3fc6b220e109f943a29a34fa6ab6ba25a200db 
  gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/mgr/GMSMembershipManager.java 4c5718fdef4e40b82b6e41cd25f2108e257a70c8 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/AdminResponse.java cc5707eeb5893f51ae06031203823acfca941163 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/AlertListenerMessage.java 6f0f0c1a6b45e6c7aa734f649858897b8c20d602 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/FetchStatsResponse.java a4991f8378e7018cfff0ef6cecf5d76264242282 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/FetchSysCfgRequest.java 156b8531632d7c392b161584074633399cbe63e1 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/HealthListenerMessage.java 28261eeb6c429b0f67e190f0054fcbb006b31f73 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/ShutdownAllRequest.java 122b94c5f3e5d9e931fe842703b0b886fb220477 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/ShutdownAllResponse.java f467a99666f42eb30381d83609e69235889e9f4b 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/SnapshotResultMessage.java 6820831f304b0f26936eebf3fbbd5b15e6fd9210 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/StatListenerMessage.java f97c45df7c6a657699e6ba471d0b479a1b1da69e 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/CloseCacheMessage.java 4aa37b2907b32f16bc8b84c3be628444588a7b15 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/CreateRegionProcessor.java f4ac67237c1e2694ab8848ccf47b3acf7238cf4e 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/FindRemoteTXMessage.java f0e9de7015cb19b6316aa7901fd975281873fb69 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/UpdateAttributesProcessor.java 4aed85e89296971a76cbae31e2b2e8d1d3ec0e43 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/partitioned/BucketProfileUpdateMessage.java 7325789014b3ef72aba0d74fc4f6e26f24c523ec 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/partitioned/FetchEntriesMessage.java d8767e62c8bd87ee80b6173f9d6a7059c7ea2b9d 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/i18n/LocalizedStrings.java dc02e361fbafb13706b20fc6423008e16655e889 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/i18n/ParentLocalizedStrings.java 0e6cdcd2662aa558e008f2f9625d967275e730d7 
  gemfire-core/src/main/java/com/gemstone/gemfire/internal/tcp/Connection.java 700e495e135c15ba66cf7efb4f25ce3e3360d64c 
  gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/JmxManagerAdvisor.java 4e0518c7c4e803a4662f389586134c323214a69c 
  gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/MembershipManagerHelper.java b2c67e0712906c89f9f68fbe82c325f844d0743b 
  gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/fd/GMSHealthMonitorJUnitTest.java 4307bddce0537a14ad032790f108cf1e5c300e0a 

Diff: https://reviews.apache.org/r/40301/diff/


Testing
-------

precheckin, integration tests


Thanks,

Bruce Schuchardt


Re: Review Request 40301: GEODE-77: faster initiation of suspect processing on crashed member

Posted by anilkumar gingade <ag...@pivotal.io>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/40301/#review106513
-----------------------------------------------------------

Ship it!


Ship It!

- anilkumar gingade


On Nov. 13, 2015, 6:06 p.m., Bruce Schuchardt wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/40301/
> -----------------------------------------------------------
> 
> (Updated Nov. 13, 2015, 6:06 p.m.)
> 
> 
> Review request for geode, anilkumar gingade, Hitesh Khamesra, Jason Huynh, Jianxia Chen, and Lynn Gallinat.
> 
> 
> Repository: geode
> 
> 
> Description
> -------
> 
> TCPConduit's Connection.java was not initiating suspect processing when a member crashed.  This was due to not having the check in the normal (amt < 0) check for a socket error.
> 
> In testing this fix with ReconnectDUnitTest I found that the change exposed some problems in GMSJoinLeave that were keeping reconnect from happening as fast as it should:
> 
> 1. The reconnecting member was processing a RemoveMember message intended for its old incarnation.  This caused it to invoke forceDisconnect() but the concurrent join() attempt did not notice this and continued to try to connect until it timed out.
> 
> 2. ViewCreator was removing the new member from the view if its old ID was being declared crashed in the same view because of the way InternalDistributedMember.compareTo() works with viewless identifiers.
> 
> This change-set also gets rid of a bunch of references to JGroups scattered around in the code and removes references to JGroups classes from GMSMembershipManager, moving the code requiring these refs to the quorum checker.
> 
> 
> Diffs
> -----
> 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/DistributionMessage.java 83ef91ddba6935ab83181cf533d8f60292e983b2 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/ReplyMessage.java 98d2365860ae3f7b3a0afca77f297fa5146c2af2 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/ShutdownMessage.java bdf359940ea3cc60026d4c6e9c61aaa0a6f88adc 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/StartupMessage.java 4bdf99f6d8decff2d2c6e16beaec4b7756780da5 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/StartupResponseMessage.java c9b6baf9e5ecf9f7a65509ea11a927eeaecd4857 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/WaitForViewInstallation.java 1ba0ed1089d917bc3e17be652715091bf901826d 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/QuorumChecker.java 3d8d261995923534779c016deed184e2ccfd3463 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/GMSMember.java 51a166b0ede46da436df03ccd7ca9b3e1838f705 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/GMSMemberFactory.java 59f9debb105a9f0834e5f860e45980c67afeebd2 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/fd/GMSHealthMonitor.java b9ec83a0b2ea7eef456cc83c6d91b315a074ebd6 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java 500131bcf63274e0941f2e8f6deeb2a6253ecc11 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/GMSQuorumChecker.java cf3fc6b220e109f943a29a34fa6ab6ba25a200db 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/mgr/GMSMembershipManager.java 4c5718fdef4e40b82b6e41cd25f2108e257a70c8 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/AdminResponse.java cc5707eeb5893f51ae06031203823acfca941163 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/AlertListenerMessage.java 6f0f0c1a6b45e6c7aa734f649858897b8c20d602 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/FetchStatsResponse.java a4991f8378e7018cfff0ef6cecf5d76264242282 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/FetchSysCfgRequest.java 156b8531632d7c392b161584074633399cbe63e1 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/HealthListenerMessage.java 28261eeb6c429b0f67e190f0054fcbb006b31f73 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/ShutdownAllRequest.java 122b94c5f3e5d9e931fe842703b0b886fb220477 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/ShutdownAllResponse.java f467a99666f42eb30381d83609e69235889e9f4b 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/SnapshotResultMessage.java 6820831f304b0f26936eebf3fbbd5b15e6fd9210 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/StatListenerMessage.java f97c45df7c6a657699e6ba471d0b479a1b1da69e 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/CloseCacheMessage.java 4aa37b2907b32f16bc8b84c3be628444588a7b15 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/CreateRegionProcessor.java f4ac67237c1e2694ab8848ccf47b3acf7238cf4e 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/FindRemoteTXMessage.java f0e9de7015cb19b6316aa7901fd975281873fb69 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/UpdateAttributesProcessor.java 4aed85e89296971a76cbae31e2b2e8d1d3ec0e43 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/partitioned/BucketProfileUpdateMessage.java 7325789014b3ef72aba0d74fc4f6e26f24c523ec 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/partitioned/FetchEntriesMessage.java d8767e62c8bd87ee80b6173f9d6a7059c7ea2b9d 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/i18n/LocalizedStrings.java dc02e361fbafb13706b20fc6423008e16655e889 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/i18n/ParentLocalizedStrings.java 0e6cdcd2662aa558e008f2f9625d967275e730d7 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/tcp/Connection.java 700e495e135c15ba66cf7efb4f25ce3e3360d64c 
>   gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/JmxManagerAdvisor.java 4e0518c7c4e803a4662f389586134c323214a69c 
>   gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/MembershipManagerHelper.java b2c67e0712906c89f9f68fbe82c325f844d0743b 
>   gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/fd/GMSHealthMonitorJUnitTest.java 4307bddce0537a14ad032790f108cf1e5c300e0a 
> 
> Diff: https://reviews.apache.org/r/40301/diff/
> 
> 
> Testing
> -------
> 
> precheckin, integration tests
> 
> 
> Thanks,
> 
> Bruce Schuchardt
> 
>


Re: Review Request 40301: GEODE-77: faster initiation of suspect processing on crashed member

Posted by Bruce Schuchardt <bs...@pivotal.io>.

> On Nov. 13, 2015, 10:40 p.m., anilkumar gingade wrote:
> > gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/DistributionMessage.java, line 233
> > <https://reviews.apache.org/r/40301/diff/1/?file=1125138#file1125138line233>
> >
> >     Does Jgroups in javadoc needs to be changed to udp?

I'll fix this in my next check-in


- Bruce


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/40301/#review106498
-----------------------------------------------------------


On Nov. 13, 2015, 6:06 p.m., Bruce Schuchardt wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/40301/
> -----------------------------------------------------------
> 
> (Updated Nov. 13, 2015, 6:06 p.m.)
> 
> 
> Review request for geode, anilkumar gingade, Hitesh Khamesra, Jason Huynh, Jianxia Chen, and Lynn Gallinat.
> 
> 
> Repository: geode
> 
> 
> Description
> -------
> 
> TCPConduit's Connection.java was not initiating suspect processing when a member crashed.  This was due to not having the check in the normal (amt < 0) check for a socket error.
> 
> In testing this fix with ReconnectDUnitTest I found that the change exposed some problems in GMSJoinLeave that were keeping reconnect from happening as fast as it should:
> 
> 1. The reconnecting member was processing a RemoveMember message intended for its old incarnation.  This caused it to invoke forceDisconnect() but the concurrent join() attempt did not notice this and continued to try to connect until it timed out.
> 
> 2. ViewCreator was removing the new member from the view if its old ID was being declared crashed in the same view because of the way InternalDistributedMember.compareTo() works with viewless identifiers.
> 
> This change-set also gets rid of a bunch of references to JGroups scattered around in the code and removes references to JGroups classes from GMSMembershipManager, moving the code requiring these refs to the quorum checker.
> 
> 
> Diffs
> -----
> 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/DistributionMessage.java 83ef91ddba6935ab83181cf533d8f60292e983b2 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/ReplyMessage.java 98d2365860ae3f7b3a0afca77f297fa5146c2af2 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/ShutdownMessage.java bdf359940ea3cc60026d4c6e9c61aaa0a6f88adc 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/StartupMessage.java 4bdf99f6d8decff2d2c6e16beaec4b7756780da5 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/StartupResponseMessage.java c9b6baf9e5ecf9f7a65509ea11a927eeaecd4857 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/WaitForViewInstallation.java 1ba0ed1089d917bc3e17be652715091bf901826d 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/QuorumChecker.java 3d8d261995923534779c016deed184e2ccfd3463 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/GMSMember.java 51a166b0ede46da436df03ccd7ca9b3e1838f705 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/GMSMemberFactory.java 59f9debb105a9f0834e5f860e45980c67afeebd2 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/fd/GMSHealthMonitor.java b9ec83a0b2ea7eef456cc83c6d91b315a074ebd6 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java 500131bcf63274e0941f2e8f6deeb2a6253ecc11 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/GMSQuorumChecker.java cf3fc6b220e109f943a29a34fa6ab6ba25a200db 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/mgr/GMSMembershipManager.java 4c5718fdef4e40b82b6e41cd25f2108e257a70c8 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/AdminResponse.java cc5707eeb5893f51ae06031203823acfca941163 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/AlertListenerMessage.java 6f0f0c1a6b45e6c7aa734f649858897b8c20d602 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/FetchStatsResponse.java a4991f8378e7018cfff0ef6cecf5d76264242282 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/FetchSysCfgRequest.java 156b8531632d7c392b161584074633399cbe63e1 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/HealthListenerMessage.java 28261eeb6c429b0f67e190f0054fcbb006b31f73 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/ShutdownAllRequest.java 122b94c5f3e5d9e931fe842703b0b886fb220477 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/ShutdownAllResponse.java f467a99666f42eb30381d83609e69235889e9f4b 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/SnapshotResultMessage.java 6820831f304b0f26936eebf3fbbd5b15e6fd9210 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/StatListenerMessage.java f97c45df7c6a657699e6ba471d0b479a1b1da69e 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/CloseCacheMessage.java 4aa37b2907b32f16bc8b84c3be628444588a7b15 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/CreateRegionProcessor.java f4ac67237c1e2694ab8848ccf47b3acf7238cf4e 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/FindRemoteTXMessage.java f0e9de7015cb19b6316aa7901fd975281873fb69 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/UpdateAttributesProcessor.java 4aed85e89296971a76cbae31e2b2e8d1d3ec0e43 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/partitioned/BucketProfileUpdateMessage.java 7325789014b3ef72aba0d74fc4f6e26f24c523ec 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/partitioned/FetchEntriesMessage.java d8767e62c8bd87ee80b6173f9d6a7059c7ea2b9d 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/i18n/LocalizedStrings.java dc02e361fbafb13706b20fc6423008e16655e889 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/i18n/ParentLocalizedStrings.java 0e6cdcd2662aa558e008f2f9625d967275e730d7 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/tcp/Connection.java 700e495e135c15ba66cf7efb4f25ce3e3360d64c 
>   gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/JmxManagerAdvisor.java 4e0518c7c4e803a4662f389586134c323214a69c 
>   gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/MembershipManagerHelper.java b2c67e0712906c89f9f68fbe82c325f844d0743b 
>   gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/fd/GMSHealthMonitorJUnitTest.java 4307bddce0537a14ad032790f108cf1e5c300e0a 
> 
> Diff: https://reviews.apache.org/r/40301/diff/
> 
> 
> Testing
> -------
> 
> precheckin, integration tests
> 
> 
> Thanks,
> 
> Bruce Schuchardt
> 
>


Re: Review Request 40301: GEODE-77: faster initiation of suspect processing on crashed member

Posted by anilkumar gingade <ag...@pivotal.io>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/40301/#review106498
-----------------------------------------------------------



gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/DistributionMessage.java (line 233)
<https://reviews.apache.org/r/40301/#comment165201>

    Does Jgroups in javadoc needs to be changed to udp?


- anilkumar gingade


On Nov. 13, 2015, 6:06 p.m., Bruce Schuchardt wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/40301/
> -----------------------------------------------------------
> 
> (Updated Nov. 13, 2015, 6:06 p.m.)
> 
> 
> Review request for geode, anilkumar gingade, Hitesh Khamesra, Jason Huynh, Jianxia Chen, and Lynn Gallinat.
> 
> 
> Repository: geode
> 
> 
> Description
> -------
> 
> TCPConduit's Connection.java was not initiating suspect processing when a member crashed.  This was due to not having the check in the normal (amt < 0) check for a socket error.
> 
> In testing this fix with ReconnectDUnitTest I found that the change exposed some problems in GMSJoinLeave that were keeping reconnect from happening as fast as it should:
> 
> 1. The reconnecting member was processing a RemoveMember message intended for its old incarnation.  This caused it to invoke forceDisconnect() but the concurrent join() attempt did not notice this and continued to try to connect until it timed out.
> 
> 2. ViewCreator was removing the new member from the view if its old ID was being declared crashed in the same view because of the way InternalDistributedMember.compareTo() works with viewless identifiers.
> 
> This change-set also gets rid of a bunch of references to JGroups scattered around in the code and removes references to JGroups classes from GMSMembershipManager, moving the code requiring these refs to the quorum checker.
> 
> 
> Diffs
> -----
> 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/DistributionMessage.java 83ef91ddba6935ab83181cf533d8f60292e983b2 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/ReplyMessage.java 98d2365860ae3f7b3a0afca77f297fa5146c2af2 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/ShutdownMessage.java bdf359940ea3cc60026d4c6e9c61aaa0a6f88adc 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/StartupMessage.java 4bdf99f6d8decff2d2c6e16beaec4b7756780da5 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/StartupResponseMessage.java c9b6baf9e5ecf9f7a65509ea11a927eeaecd4857 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/WaitForViewInstallation.java 1ba0ed1089d917bc3e17be652715091bf901826d 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/QuorumChecker.java 3d8d261995923534779c016deed184e2ccfd3463 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/GMSMember.java 51a166b0ede46da436df03ccd7ca9b3e1838f705 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/GMSMemberFactory.java 59f9debb105a9f0834e5f860e45980c67afeebd2 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/fd/GMSHealthMonitor.java b9ec83a0b2ea7eef456cc83c6d91b315a074ebd6 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/GMSJoinLeave.java 500131bcf63274e0941f2e8f6deeb2a6253ecc11 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/messenger/GMSQuorumChecker.java cf3fc6b220e109f943a29a34fa6ab6ba25a200db 
>   gemfire-core/src/main/java/com/gemstone/gemfire/distributed/internal/membership/gms/mgr/GMSMembershipManager.java 4c5718fdef4e40b82b6e41cd25f2108e257a70c8 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/AdminResponse.java cc5707eeb5893f51ae06031203823acfca941163 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/AlertListenerMessage.java 6f0f0c1a6b45e6c7aa734f649858897b8c20d602 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/FetchStatsResponse.java a4991f8378e7018cfff0ef6cecf5d76264242282 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/FetchSysCfgRequest.java 156b8531632d7c392b161584074633399cbe63e1 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/HealthListenerMessage.java 28261eeb6c429b0f67e190f0054fcbb006b31f73 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/ShutdownAllRequest.java 122b94c5f3e5d9e931fe842703b0b886fb220477 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/ShutdownAllResponse.java f467a99666f42eb30381d83609e69235889e9f4b 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/SnapshotResultMessage.java 6820831f304b0f26936eebf3fbbd5b15e6fd9210 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/admin/remote/StatListenerMessage.java f97c45df7c6a657699e6ba471d0b479a1b1da69e 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/CloseCacheMessage.java 4aa37b2907b32f16bc8b84c3be628444588a7b15 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/CreateRegionProcessor.java f4ac67237c1e2694ab8848ccf47b3acf7238cf4e 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/FindRemoteTXMessage.java f0e9de7015cb19b6316aa7901fd975281873fb69 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/UpdateAttributesProcessor.java 4aed85e89296971a76cbae31e2b2e8d1d3ec0e43 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/partitioned/BucketProfileUpdateMessage.java 7325789014b3ef72aba0d74fc4f6e26f24c523ec 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/cache/partitioned/FetchEntriesMessage.java d8767e62c8bd87ee80b6173f9d6a7059c7ea2b9d 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/i18n/LocalizedStrings.java dc02e361fbafb13706b20fc6423008e16655e889 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/i18n/ParentLocalizedStrings.java 0e6cdcd2662aa558e008f2f9625d967275e730d7 
>   gemfire-core/src/main/java/com/gemstone/gemfire/internal/tcp/Connection.java 700e495e135c15ba66cf7efb4f25ce3e3360d64c 
>   gemfire-core/src/main/java/com/gemstone/gemfire/management/internal/JmxManagerAdvisor.java 4e0518c7c4e803a4662f389586134c323214a69c 
>   gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/MembershipManagerHelper.java b2c67e0712906c89f9f68fbe82c325f844d0743b 
>   gemfire-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/gms/membership/fd/GMSHealthMonitorJUnitTest.java 4307bddce0537a14ad032790f108cf1e5c300e0a 
> 
> Diff: https://reviews.apache.org/r/40301/diff/
> 
> 
> Testing
> -------
> 
> precheckin, integration tests
> 
> 
> Thanks,
> 
> Bruce Schuchardt
> 
>