[cifs-protocol] 115051312732870 detecting failed DCs in the KCC (MS-ADTS 22.214.171.124.4.4)
srenaden at microsoft.com
Wed May 13 17:23:44 MDT 2015
Dochelp in Bcc
Casemail in Cc
Thank you for your inquiry about MS-ADTS specification. We have created incident 115051312732870 to track the investigation for this issue. One of the Open specifications team member will contact you shortly.
Microsoft Windows Open Specifications
From: Douglas Bagnall [mailto:douglas.bagnall at catalyst.net.nz]
Sent: Wednesday, May 13, 2015 6:44 PM
To: Interoperability Documentation Help
Cc: cifs-protocol at samba.org
Subject: detecting failed DCs in the KCC (MS-ADTS 126.96.36.199.4.4)
MS-ADTS 188.8.131.52.4.4 (v20140502, page 569) defines BridgeheadDCFailed
/***** BridgeheadDCFailed *****/
/* Determine whether a given DC is known to be in a failed state.
* IN: objectGUID - objectGUID of the DC's nTDSDSA object.
* IN: detectFailedDCs - TRUE if and only failed DC detection is
* RETURNS: TRUE if and only if the DC should be considered to be in a
* failed state.
BridgeheadDCFailed(IN GUID objectGUID, IN bool detectFailedDCs) : bool
IF bit NTDSSETTINGS_OPT_IS_TOPL_DETECT_STALE_DISABLED is set in
the options attribute of the site settings object for the local
ELSEIF a tuple z exists in the kCCFailedLinks or
kCCFailedConnections variables such that z.UUIDDsa =
objectGUID, z.FailureCount > 1, and the current time -
z.TimeFirstFailure > 2 hours
The way the detectFailedDCs parameter is used in the pseudo-code seems at odds with its description in the comments (which is consistent with comments elsewhere in the stack). The pseudo-code is using detectFailedDCs as a default value in the case a failure is not detected, not as a switch turning detection on or off. As written, you can only actually detect a failed DC if detectFailedDCs is *false* -- when it is true, the return value merely reflects the NTDSSETTINGS_OPT_IS_TOPL_DETECT_STALE_DISABLED bit.
Shouldn't it look more like this:
IF detectFailedDCs is FALSE or
bit NTDSSETTINGS_OPT_IS_TOPL_DETECT_STALE_DISABLED is set [...]
ELSEIF a tuple z exists [...]
or is it the comments that need fixing?
More information about the cifs-protocol