Bug 1766962

Summary: ldap_uri failover doesn't work with different ports
Product: Red Hat Enterprise Linux 8 Reporter: Amith <apeetham>
Component: sssdAssignee: Pavel Březina <pbrezina>
Status: CLOSED ERRATA QA Contact: sssd-qe <sssd-qe>
Severity: high Docs Contact:
Priority: unspecified    
Version: 8.1CC: atikhono, grajaiya, jhrozek, lslebodn, mzidek, pbrezina, sgoveas, tscherf
Target Milestone: rcKeywords: Regression
Target Release: 8.0Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: sync-to-jira
Fixed In Version: sssd-2.2.3-2.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-28 16:56:29 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Amith 2019-10-30 11:31:43 UTC
Description of problem:
We have multiple testcase failures related to failover wherein the list of URI's have different port numbers. These cases worked in RHEL-8.0.0. Following are the cases:
1. ldap uri failover with single server different ports
2. ldap chpass uri failover with single server different ports
3. ldap chpass backup uri failover with single server different ports

Version-Release number of selected component (if applicable):
sssd-2.2.0-19.el8

How reproducible:
Always.

Steps to Reproduce:
1. Setup SSSD with any one of the following domain section:

    [domain/LDAP]
    debug_level=0xFFF0
    id_provider = ldap
    ldap_uri = ldap://$SERVER1:12345,ldap://$SERVER1:389
    ldap_tls_cacertdir = /etc/openldap/certs
    ldap_search_base = dc=example,dc=com

OR

    [domain/LDAP]
    debug_level=0xFFF0
    id_provider = ldap
    auth_provider = ldap
    chpass_provider = ldap
    ldap_uri = ldap://$SERVER1
    ldap_chpass_uri = ldap://$SERVER1:12345,ldap://$SERVER1:389
    ldap_tls_cacertdir = /etc/openldap/certs
    ldap_search_base = dc=example,dc=com

OR

    [domain/LDAP]
    debug_level=0xFFF0
    id_provider = ldap
    auth_provider = ldap
    chpass_provider = ldap
    ldap_uri = ldap://$SERVER1
    ldap_chpass_uri = ldap://$SERVER1:12345
    ldap_chpass_backup_uri = ldap://$SERVER1:389
    ldap_tls_cacertdir = /etc/openldap/certs
    ldap_search_base = dc=example,dc=com

2. In the above cases, port 12345 is non-existent in order to allow SSSD to failover to next uri or backup uri. Now restart SSSD service.

3. Run a user login. You will see that user auth fails. SSSD log shows "PORT NOT WORKING" error.

Additional info:
A similar bug related to krb5_kpasswd exists (https://bugzilla.redhat.com/show_bug.cgi?id=880546). This bug was fixed and is part of our automation. Strangely, all the krb cases related to "Single server different port" works.

Comment 1 Pavel Březina 2019-11-05 13:11:32 UTC
Upstream ticket:
https://pagure.io/SSSD/sssd/issue/4112

Comment 2 Pavel Březina 2019-11-05 13:16:06 UTC
Upstream PR:
https://github.com/SSSD/sssd/pull/929

Comment 3 Pavel Březina 2019-11-07 12:16:06 UTC
* `master`
    * 08f0159078aa00d04533ca227679e25d64c452e1 - failover: make sure we switch to anoter server if only port differs

Comment 4 Michal Zidek 2020-01-15 12:08:48 UTC
This bug was fixed as part of the rebase we did in RHEL 8.2.0. It would be good to fully ack it and include in the erratum.

Comment 6 Amith 2020-02-26 04:57:11 UTC
Verified the bug on SSSD version: sssd-2.2.3-16.el8.x86_64

This bug was part of regression run failure hence following beaker job should cover the verification:

https://beaker.engineering.redhat.com/jobs/4090538

Comment 8 errata-xmlrpc 2020-04-28 16:56:29 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2020:1863