I’m trying to install Deadline as part of a CI/CD process and it fails. I don’t receive any output except that the process has a return code of -1. As soon as I do it outside of the CI/CD service (same environment), everything is fine.
These are the args I’m supplying: --prefix /opt/deadline --noguimode true --mode unattended --connectiontype Remote --daemonuser deadlineuser --launcherdaemon false
I’ve tried with 10.23.1.6, 10.2.1.1 and 10.3.0.10
Is there any way to get more details on why it failed so I can narrow in on what the problem is with my automated environment?
I will. It’s a bit tricky to get at the logs since it’s in a CI/CD system. It would be helpful to be able to redirect the logs with an argument to the installer…
Afraid not, that doesn’t seem to be an option for installbuilder files, nor is it something we expose. Are you able to eject files as artifacts from your CI/CD? You could pull the log out of /tmp since it’ll be the first time the installer is run on the instance and so it’ll have a consistent file name.
I found the issue… but I’m not sure how to work around it.
Our CI/CD system installs multiple versions of the Deadline Worker in parallel. When the installer writes to /tmp, there’s a conflict because every version of the Worker uses the same sub folder in /tmp. Setting $TMPDIR (or any other variation) has no effect. Install builder can expose the tmp path (as an env var) but as far as I can tell, this isn’t done in the Deadline installer.
Ah yeah that’ll create trouble. From what I can tell that’s an installbuilder bug, we’re using ${system_temp_directory}/clientinstalltemp in the installer code that should be respecting overrides of the system’s temporary directories.
What has you installing multiple versions of Deadline to the same machine? Having the client and repository versions match isn’t required but very strongly suggested.
I spun up a container (I didn’t use a CI/CD environment) and tried running the client installer with your args, but I used TEMP instead of TMPDIR. When I used TMPDIR as the env var, it was ignored.
mkdir /opt/TEMP
export TEMP=/opt/TEMP
ran the command and the temp deadline files got written to the /opt/TEMP dir:
[root@6349f752838d /]# ls -la /opt/TEMP /tmp
/opt/TEMP:
total 16
drwxr-xr-x. 1 root root 174 Mar 13 20:02 .
drwxr-xr-x. 1 root root 30 Mar 13 20:02 ..
-rwxrwxrwx. 1 root root 4336 Dec 16 00:58 ca-certificates.crt
drwxrwxrwx. 1 root root 28184 Mar 13 20:02 clientinstalltemp
-rwxrwxrwx. 1 root root 420 Dec 16 00:58 deadlinelauncherservice
-rw-------. 1 root root 650 Mar 13 20:02 installbuilder_installer.log
/tmp:
total 8
drwxrwxrwt. 1 root root 274 Mar 13 20:02 .
drwxr-xr-x. 1 root root 164 Mar 13 19:59 ..
prwx------. 1 root root 0 Mar 13 20:02 clr-debug-pipe-229-122533094-in
prwx------. 1 root root 0 Mar 13 20:02 clr-debug-pipe-229-122533094-out
srw-------. 1 root root 0 Mar 13 20:02 dotnet-diagnostic-229-122533094-socket
-rwx------. 1 root root 291 Feb 15 2023 ks-script-q478qgfz
-rwx------. 1 root root 701 Feb 15 2023 ks-script-xwi1grfe