Bug 628791 - Chain-On-Update fails to rollover to second master server for updates. Causing authentication failures.
Summary: Chain-On-Update fails to rollover to second master server for updates. Causin...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: 389
Classification: Retired
Component: Replication - General
Version: 1.2.5
Hardware: x86_64
OS: Linux
high
medium
Target Milestone: ---
Assignee: Rich Megginson
QA Contact: Chandrasekar Kannan
URL:
Whiteboard:
Depends On:
Blocks: 639035
TreeView+ depends on / blocked
 
Reported: 2010-08-31 04:47 UTC by Bob Kong
Modified: 2015-01-04 23:43 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-10-06 13:06:22 UTC
Embargoed:


Attachments (Terms of Use)

Description Bob Kong 2010-08-31 04:47:59 UTC
Description of problem:
In our environment we have configured chain-on-update on our clients ldap systems to chain updates to a hub ldap server. The hub ldap server is configured has configured two master ldap servers to chain updates too. 

    nsfarmserverurl: ldap://serverA:389 ldap://serverB:389

If serverA becomes unavailable the updates are never sent to serverB. All authentications on the client systems fail.

Updating nsframserverurl by removing serverA restores authentication and chaining resumes on serverB

It is my understanding that defining multiple servers is to provide a level of redundancy in the event of failure to one of master servers. This is not working as expected

Version-Release number of selected component (if applicable):
389-dsgw-1.1.4-1.el5
389-ds-console-1.2.0-5.el5
389-adminutil-1.1.8-4.el5
389-ds-base-1.2.5-1.el5
389-admin-console-1.1.4-3.el5
389-ds-console-doc-1.2.0-5.el5
389-console-1.1.3-6.el5
389-ds-1.1.3-6.el5
389-admin-1.1.10-1.el5
389-admin-console-doc-1.1.4-3.el5

How reproducible:
We have been able to reproduce this in several of our environments using the 389 directory server

Steps to Reproduce:
1. Configure two or more master ldap servers
2. Configure a hub ldap server
3. Configure a client ldap server
4. Follow the HowTo directions for ChainOnUpdate on the Hub server configure nsfarmserverurl to contain the two master ldap server urls
5. On the client system configure the client to chain updates to the Hub server
6. Verify authentication works correctly when both masters are available. On the client system perform a simple ldapsearch
7. Shutdown the first master server defined in nsfarmserverurl
8. Attempt to authenticate on the client system by using a simple ldapsearch
  
Actual results:
Authentication fails


Expected results:
Hub ldap server to rollover to second master ldap server allowing for authentications to succeed


Additional info:

Comment 3 Rich Megginson 2010-10-05 02:43:50 UTC
(In reply to comment #0)
> Description of problem:
> In our environment we have configured chain-on-update on our clients ldap
> systems to chain updates to a hub ldap server. The hub ldap server is
> configured has configured two master ldap servers to chain updates too. 
> 
>     nsfarmserverurl: ldap://serverA:389 ldap://serverB:389

This is incorrect.  The format should be

nsfarmserverurl: ldap://serverA:389 serverB:389/

Is the documentation wrong?

> 
> If serverA becomes unavailable the updates are never sent to serverB. All
> authentications on the client systems fail.
> 
> Updating nsframserverurl by removing serverA restores authentication and
> chaining resumes on serverB
> 
> It is my understanding that defining multiple servers is to provide a level of
> redundancy in the event of failure to one of master servers. This is not
> working as expected
> 
> Version-Release number of selected component (if applicable):
> 389-dsgw-1.1.4-1.el5
> 389-ds-console-1.2.0-5.el5
> 389-adminutil-1.1.8-4.el5
> 389-ds-base-1.2.5-1.el5
> 389-admin-console-1.1.4-3.el5
> 389-ds-console-doc-1.2.0-5.el5
> 389-console-1.1.3-6.el5
> 389-ds-1.1.3-6.el5
> 389-admin-1.1.10-1.el5
> 389-admin-console-doc-1.1.4-3.el5
> 
> How reproducible:
> We have been able to reproduce this in several of our environments using the
> 389 directory server
> 
> Steps to Reproduce:
> 1. Configure two or more master ldap servers
> 2. Configure a hub ldap server
> 3. Configure a client ldap server
> 4. Follow the HowTo directions for ChainOnUpdate on the Hub server configure
> nsfarmserverurl to contain the two master ldap server urls
> 5. On the client system configure the client to chain updates to the Hub server
> 6. Verify authentication works correctly when both masters are available. On
> the client system perform a simple ldapsearch
> 7. Shutdown the first master server defined in nsfarmserverurl
> 8. Attempt to authenticate on the client system by using a simple ldapsearch
> 
> Actual results:
> Authentication fails
> 
> 
> Expected results:
> Hub ldap server to rollover to second master ldap server allowing for
> authentications to succeed
> 
> 
> Additional info:

Comment 4 Bob Kong 2010-10-05 11:39:58 UTC
No the information on the documentation is correct. We have our configuration incorrect. I made the assumption that the that "ldap://" was required for each server listed. Will test and verify later today.

Comment 5 Rich Megginson 2010-10-05 14:13:49 UTC
Ok.  Waiting for confirmation.  I've done some testing of this.  One thing I've found is that the first operation after one of the servers is down does not failover.  Instead, the client gets an OPERATIONS_ERROR (err=1).  Subsequent operations will succeed.  So it does failover, just not as smoothly as it could.

Comment 6 Bob Kong 2010-10-05 23:11:26 UTC
I ran a test earlier today and with the corrected format and chain-on-upate is working correctly. I also noticed a sort period of errors with authentication which I believe is the issue that stated above (OPERATIONS_ERROR). After about 5 to 10 seconds slapd flips to the secondary server.

Comment 7 Rich Megginson 2010-10-06 13:06:22 UTC
Thanks.


Note You need to log in before you can comment on or make changes to this bug.