2018年10月15日(月) 17:39 <r...@apache.org>:

> Author: remm
> Date: Mon Oct 15 08:39:26 2018
> New Revision: 1843886
>
> URL: http://svn.apache.org/viewvc?rev=1843886&view=rev
> Log:
> Try to get the member uid from the cloud, it seems more appropriate
> overall.
>
> Modified:
>
> tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipService.java
>
> tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
>
> Modified:
> tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipService.java
> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipService.java?rev=1843886&r1=1843885&r2=1843886&view=diff
>
> ==============================================================================
> ---
> tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipService.java
> (original)
> +++
> tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipService.java
> Mon Oct 15 08:39:26 2018
> @@ -18,9 +18,6 @@
>  package org.apache.catalina.tribes.membership.cloud;
>
>  import java.io.IOException;
> -import java.net.InetAddress;
> -import java.security.MessageDigest;
> -import java.security.NoSuchAlgorithmException;
>
>  import javax.management.ObjectName;
>
> @@ -42,6 +39,7 @@ public class CloudMembershipService exte
>      public static final String MEMBERSHIP_PROVIDER_CLASS_NAME =
> "membershipProviderClassName";
>      private static final String KUBE = "kubernetes";
>      private static final String KUBE_PROVIDER_CLASS =
> "org.apache.catalina.tribes.membership.cloud.KubernetesMembershipProvider";
> +    static final byte[] INITIAL_ID = new byte[16];
>
>      private MembershipProvider membershipProvider;
>      private MemberImpl localMember;
> @@ -173,13 +171,7 @@ public class CloudMembershipService exte
>
>          if (localMember == null) {
>              localMember = new MemberImpl();
> -            try {
> -                // Set localMember unique ID to md5 hash of hostname
> -                localMember.setUniqueId(MessageDigest.getInstance("md5")
> -
> .digest(InetAddress.getLocalHost().getHostName().getBytes()));
> -            } catch (NoSuchAlgorithmException e) {
> -                throw new IOException(e);
> -            }
> +            localMember.setUniqueId(INITIAL_ID);
>              localMember.setLocal(true);
>          }
>          localMember.setHostname(host);
>
> Modified:
> tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java?rev=1843886&r1=1843885&r2=1843886&view=diff
>
> ==============================================================================
> ---
> tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
> (original)
> +++
> tomcat/trunk/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
> Mon Oct 15 08:39:26 2018
> @@ -203,10 +203,15 @@ public class KubernetesMembershipProvide
>
>                  // We found ourselves, ignore
>                  if (name.equals(hostName)) {
> +                    // Update the UID on initial lookup
> +                    Member localMember = service.getLocalMember(false);
> +                    if (localMember.getUniqueId() ==
> CloudMembershipService.INITIAL_ID && localMember instanceof MemberImpl) {
> +                        byte[] id =
> md5.digest(uid.getBytes(StandardCharsets.US_ASCII));
> +                        ((MemberImpl) localMember).setUniqueId(id);
> +                    }
>                      continue;
>                  }
>
> -                byte[] id =
> md5.digest(uid.getBytes(StandardCharsets.US_ASCII));
>                  long aliveTime =
> Duration.between(Instant.parse(creationTimestamp), startTime).getSeconds()
> * 1000; // aliveTime is in ms
>
>                  MemberImpl member = null;
> @@ -218,6 +223,7 @@ public class KubernetesMembershipProvide
>
>  log.error(sm.getString("kubernetesMembershipProvider.memberError"), e);
>                      continue;
>                  }
> +                byte[] id =
> md5.digest(uid.getBytes(StandardCharsets.US_ASCII));
>                  member.setUniqueId(id);
>                  members.add(member);
>              }
>
>
>
>
Thanks for the fix.

Is this uniqueId 16 bytes?
The uniqueId should be 16 bytes in channel Specs.



> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
> --
> Keiichi.Fujino
> <dev-h...@tomcat.apache.org>

Reply via email to