[ https://issues.apache.org/jira/browse/AMBARI-22950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16358543#comment-16358543 ]
Hudson commented on AMBARI-22950: --------------------------------- FAILURE: Integrated in Jenkins build Ambari-trunk-Commit #8702 (See [https://builds.apache.org/job/Ambari-trunk-Commit/8702/]) AMBARI-22950. SPNEGO service keytab is getting deleted upon deleting (rlevas: [https://gitbox.apache.org/repos/asf?p=ambari.git&a=commit&h=be703e8a70e63a78a58f5867287c47a380fddda5]) * (edit) ambari-server/src/main/java/org/apache/ambari/server/state/kerberos/AbstractKerberosDescriptorContainer.java > SPNEGO service keytab is getting deleted upon deleting component from host > -------------------------------------------------------------------------- > > Key: AMBARI-22950 > URL: https://issues.apache.org/jira/browse/AMBARI-22950 > Project: Ambari > Issue Type: Bug > Components: ambari-server > Affects Versions: 2.7.0 > Reporter: Robert Levas > Assignee: Robert Levas > Priority: Critical > Labels: pull-request-available > Fix For: 2.7.0 > > Time Spent: 1h > Remaining Estimate: 0h > > spnego.service.keytab is getting deleted upon deleting components. > Steps to reproduce : > # Add additional "livy" component to some host in the cluster > # Delete added "livy" component > # Deletion of livy is deleting /etc/security/keytabs/spnego.service.keytab as > well > The cause of this is due to an invalid check to determine if a Kerberos > identity is a reference or no at > {code:title=org.apache.ambari.server.state.kerberos.AbstractKerberosDescriptorContainer#getIdentitiesSkipReferences} > public List<KerberosIdentityDescriptor> getIdentitiesSkipReferences() { > return nullToEmpty(getIdentities()) > .stream() > .filter(identity -> !identity.getReferencedServiceName().isPresent() && > identity.getName() != null && !identity.getName().startsWith("/")) > .collect(toList()); > } > {code} > The fixed code should be > {code:title=org.apache.ambari.server.state.kerberos.AbstractKerberosDescriptorContainer#getIdentitiesSkipReferences} > public List<KerberosIdentityDescriptor> getIdentitiesSkipReferences() { > return nullToEmpty(getIdentities()) > .stream() > .filter(identity -> !identity.getReferencedServiceName().isPresent() && > !identity.isReference()) .collect(toList()); > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)