chrisgreb
davidoberst
It should probably be a “range” sort of parameter, so that one could specify “between 30000 and 31000”, etc. and our IT could set a firewall rule to allow that range only. In theory a farm blade could be running multiple PDG->Cook job tasks each needing to acquire a separate port#, since they are lightweight controllers (you have a separate service key field for these tasks and the cooking tasks). I was trying to find where your code acquires the port# it uses - is it possible to specify an acceptable range at that point?
The port in question is ‘Task Callback Port’, which is usually set on the PDG Message Queue job - this parm is at the bottom of the Tractor Node UI. In the case of submit-as-job the TOP Cook job is hosting it's own task callback port, so it makes sense to use that same parm. The way it works is that it tries to bind ports starting at the given port number and going up from there. There is a fixed number of attempts (50). That seems like it should be enough for everyone, but we could probably expose that range length as well if it might be an issue.
I had tried filling in Task Callback Port, on the chance that it would be used by Graph as Job option as well, but it wasn't. If that does a +50 check that should be more than enough, if you have the Tractor controlling task use that mechanism as well.
Until then, where does the current code do the bind to a port? If I can find the right file and procedure, I may be able to monkey-patch in some different behaviour. That's what we are going to do as an interim solution for #1 - monkeypatch in an altered _initEngineConnection() that calls the original, then does another setEngineClientParam() call to provide a more suitable sessionFilename.