It’s not ArgumentException: The given SlaveInfo and SlaveSettings objects have an empty SlaveName property happening again is it?
If not, this is usually caused by something in the Worker’s database representation being missing, so you only get the first page of Worker results, hence only seeing 200.
We’re not entirely sure what the cause might be here, and it seems that there can be multiple causes. In the past we believed it was that there are missing entries in the SlaveSettingsCollection for the corresponding SlaveInfo Collection entries. You can compare them, but another test would be to run the following script which just loads and saves sanitized data:
# File is named update_workers.py
from Deadline.Scripting import RepositoryUtils
from datetime import datetime
import time
def __main__(**kargs):
workers = RepositoryUtils.GetSlaveSettingsList(True)
worker_count = len(workers)
print("Found " + worker_count + " workers!")
for worker in workers:
print("Update Worker " + worker.SlaveName + " at " + datetime.now())
RepositoryUtils.SaveSlaveSettings(worker)
This can be run connected to an RCS or directly to the DB. Use this command:
./deadlinecommand executescriptnogui ~/Downloads/update_workers.py
If that doesn’t seem to work, you can try to follow the older steps:
Get both the collections from the database but running below:
./mongo --port=27100 deadline10db --quiet --eval "cursor = db.SlaveInfo.find(); printjson(cursor.toArray())" > WorkerInfo.txt
./mongo --port=27100 deadline10db --quiet --eval "cursor = db.SlaveSettings.find(); printjson(cursor.toArray())" > WorkerSettings.txt
Where the core parts are the following:
db.SlaveInfo.find().pretty()
db.SlaveSettings.find().pretty()
Then compare “Name” across both collections.
- Open notepad++ and look for the “Name” (with quotes) and hit “Find All in Current Document”
- Then copy the result to an Excel sheet.
- Then run a vlookup on Slave Info Name entries to compare it with Slave Setting Name entries do you see NAs? these are the missing entries.