b05d4f5 Bug 697694 - rhds82 - incr update state stop_fatal_error "requires administrator action", with extop_result: 9

Authored and Committed by rmeggins 8 years ago
    Bug 697694 - rhds82 - incr update state stop_fatal_error "requires administrator action", with extop_result: 9
    
    https://bugzilla.redhat.com/show_bug.cgi?id=697694
    Resolves: bug 697694
    Bug Description: incr update state stop_fatal_error "requires administrator action", with extop_result: 9
    Reviewed by: nkinder, nhosoi (Thanks!)
    Branch: Directory_Server_8_2_Branch
    Fix Description: Calling ldap_result with LDAP_RES_ANY will return the first
    msgid available.  Because the operation sending and receiving is async
    done in separate threads, we may not get the msgid corresponding to the
    request we sent.  This is the cause of the "Bad parameter to an LDAP routine"
    errors.  We call ldap_parse_result expecting an EXTENDED operation but we get
    some other operation.  This causes hard failures to eventually propagate up
    and halt replication with fatal errors.  The solution is to call
    ldap_result with the actual msgid corresponding to the operation that was
    sent, instead of LDAP_RES_ANY.
    This is hard to reproduce.  One way I have found to consistently reproduce
    the error is to set up a 4-way MMR and run one of the masters in the
    debugger.  Break the debugger and let the server sit idle for several minutes
    until you see errors in the errors logs of the other masters.  Break and
    continue like this several times, and you will eventually see "Bad parameter
    to an LDAP routine" errors.
    Platforms tested: RHEL6 x86_64
    Flag Day: no
    Doc impact: no