Bruce Schuchardt created GEODE-4362:
---------------------------------------

             Summary: view preparation throws uncaught RuntimeException
                 Key: GEODE-4362
                 URL: https://issues.apache.org/jira/browse/GEODE-4362
             Project: Geode
          Issue Type: Bug
          Components: membership
            Reporter: Bruce Schuchardt


I put a pause in Services.installView() before the view is passed to the 
Messenger service and ran 
LocatorUDPSecurityDUnitTest.testCollocatedLocatorWithSecurity() and encountered 
a RuntimeException:

 {noformat}
[vm1] java.lang.RuntimeException: Not found public key for member 
10.118.20.12(68202)<v31>:32773
[vm1]   at 
org.apache.geode.distributed.internal.membership.gms.messenger.GMSEncrypt.getPublicKey(GMSEncrypt.java:178)
[vm1]   at 
org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.getPublicKey(JGroupsMessenger.java:1367)
[vm1]   at 
org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.addPublicKeysToView(GMSJoinLeave.java:933)
[vm1]   at 
org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.sendView(GMSJoinLeave.java:896)
[vm1]   at 
org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.prepareView(GMSJoinLeave.java:838)
[vm1]   at 
org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave$ViewCreator.prepareAndSendView(GMSJoinLeave.java:2385)
[vm1]   at 
org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave$ViewCreator.sendInitialView(GMSJoinLeave.java:2031)
[vm1]   at 
org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave$ViewCreator.run(GMSJoinLeave.java:2091)
[vm1] Caused by: java.lang.NullPointerException
[vm1]   at java.security.spec.EncodedKeySpec.<init>(EncodedKeySpec.java:56)
[vm1]   at 
java.security.spec.X509EncodedKeySpec.<init>(X509EncodedKeySpec.java:64)
[vm1]   at 
org.apache.geode.distributed.internal.membership.gms.messenger.GMSEncrypt.getPublicKey(GMSEncrypt.java:545)
[vm1]   at 
org.apache.geode.distributed.internal.membership.gms.messenger.GMSEncrypt$PeerEncryptor.<init>(GMSEncrypt.java:377)
[vm1]   at 
org.apache.geode.distributed.internal.membership.gms.messenger.GMSEncrypt.createPeerEncryptor(GMSEncrypt.java:301)
[vm1]   at 
org.apache.geode.distributed.internal.membership.gms.messenger.GMSEncrypt.getPeerEncryptor(GMSEncrypt.java:259)
[vm1]   at 
org.apache.geode.distributed.internal.membership.gms.messenger.GMSEncrypt.getPublicKey(GMSEncrypt.java:176)
[vm1]   ... 7 more
{noformat}

Since GMSJoinLeave already had the new view installed and JGroupsMessenger did 
not have the new view installed we were unable to find the public key for one 
of the recipients of the new view.  View preparation should probably be 
synchronized with view installation so that both aren't done in parallel.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to