bad interpreter: Permission denied

  • 7010557
  • 01-Aug-2012
  • 01-Aug-2012

Environment

PlateSpin Forge
PlateSpin Migrate
PlateSpin Protect

Situation

When attempting to discover or add a Linux workload the job fails with an error similar to the following (as seen in the diagnostics):

Error Code 
Type  System.Exception
Message  Failed: cd /tmp/ofx.e4b42254-62a9-4847-9b61-c295dc33f68d; ./getMachineInfo.sh -o machineinfo.xml.b7e1418b-d746-498f-a4f3-0ca9f692e6de Return-code: 126 Stdout: Stderr: bash: ./getMachineInfo.sh: /bin/sh: bad interpreter: Permission denied
Source  GetMachineInfo
Source Method  PlateSpin.Athens.GetMachineInfoNameSpace.GetMachineInfoHelper.RunSSHCommand
Source Method Signature  System.String RunSSHCommand(PlateSpin.OperationsFramework.Controller.Setup.Unix.SshTool, System.String, System.String)
Source Module  E:\Program Files (x86)\PlateSpin Migrate Server\Controller\Packages\0\c6c9e041-4618-4ccf-bcb1-cae4a69a0b0d\1\GetMachineInfo.exe
Stack Trace  at PlateSpin.Athens.GetMachineInfoNameSpace.GetMachineInfoHelper.RunSSHCommand(SshTool sshTool, String command, String failedMessage)

Resolution

On the source, verify if either of the following conditions are true in the /etc/fstab file:

1. The / or /tmp (if it exists) mount point is using the "defaults" option, with the "noexec" option

2. The / or /tmp (if it exists) mount point is not using the "defaults" option, nor the "exec" option

If using the "defaults" option, the "noexec" option should not be used.  Conversely, if not using the "defaults" option, the "exec" option should be used.

Once the fstab has been configured appropriately, a reboot is required.

Cause

The "exec" and "noexec" options in the fstab allow/deny the execution of binaries on that volume.  The "defaults" options typically includes the "exec" option, so using "defaults" with "noexec" (or any other combination that would negate the "exec" option) stops any binary from being run.  The discovery/add workload process runs a script in the /tmp directory of the workload; if binaries can't run in that directory, the discovery will fail.