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