Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-4362

view preparation throws uncaught RuntimeException

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.5.0
    • membership
    • None

    Description

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

       

      [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
      

      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.

      Attachments

        Activity

          People

            gosullivan Galen O'Sullivan
            bschuchardt Bruce J Schuchardt
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: