Enabling vSAN File Service Active Directory integration fails with "Exception caught when running preflight check"
search cancel

Enabling vSAN File Service Active Directory integration fails with "Exception caught when running preflight check"

book

Article ID: 436520

calendar_today

Updated On:

Products

VMware vSAN

Issue/Introduction

  • When attempting to configure Active Directory integration during vSAN File Service enablement, the process fails at the "Edit Domain" wizard.

  • The vSphere Client UI displays the following error message:

    Failed to check domain configuration: Exception caught when running preflight check on file server.

  • Reviewing the vsanmgmt.log (/var/log/vsanmgmt.log) on the ESXi hosts reveals a thread collision error referencing a specific Domain Controller hostname:

    Er(11) vsand[9257274]: [opID=agw...] Exception caught when running preflight check on file server. In(14) vsand[9257274]: [opID=agw...] PRECHECK: Caught unexpected error: Thread name dc01.example.com-A already exists In(14) vsand[9257274]: [opID=agw...] PRECHECK: PRECHECKOUTPUT: {"error": "Thread name dc01.example.com-A already exists"}

  • Querying the Active Directory domain for LDAP SRV records (_ldap._tcp.<domain>) returns multiple, duplicate entries for the exact same Domain Controller hostname. Example:

     
    $ dig SRV _ldap._tcp.example.com
    _ldap._tcp.example.com. 600 IN SRV 0 75 389 dc01.example.com.
    _ldap._tcp.example.com. 600 IN SRV 0 100 389 dc01.example.com.

Environment

VMware vSAN 8.x
VMware vSAN File Services

Cause

This issue occurs due to a code limitation in the vSAN File Service validation script (precheck.py) regarding how it handles duplicate DNS SRV records.

During the Active Directory configuration, the preflight check queries DNS for _ldap._tcp.<domain> SRV records to discover Domain Controllers. If the DNS environment returns multiple records for the exact same Domain Controller (e.g., duplicated records with different weights/priorities), the Python script fails to deduplicate the array of target hostnames.

The script iterates through the list and attempts to spawn a background validation thread for each record. When it encounters the duplicate entry, it attempts to spawn a second, concurrent thread using the exact same name (e.g., dc01.example.com-A). Python rejects this and throws the Thread name ... already exists exception, immediately crashing the preflight check and failing the wizard.

Resolution

Broadcom Engineering has identified a fix for this issue, which will be available in a future release.

If you encounter this issue, please contact Broadcom Support for assistance and reference this KB article. For instructions on how to open a support case, please review the following guide: How to create and manage support cases with Broadcom Support