Search code examples
redhawksdr

RedHawk SDR waveform won't run in Domain Manager


In the RedHawk SDR, I am trying to launch a waveform under REDHAWK_DEV as described in chapter 22 of the Redhawk Manual Version 1.10. The waveform (junk2) launches fine into the sandbox, but fails when I try to launch into the Domain. The error is

Failed to create application: junk2_097_121512019 'load' failed for
component: 'HardLimit' with component id: 
'HardLimit_1:junk2_097_121512019_1'  with implementation id: 'cpp'; on 
device id: 'DCE:9bca8a73-55e6-443f-9925-081db1fcad5b' in waveform 
'junk2_097_121512019_1' error occurred near line:2386 in 
file:ApplicationFactory_impl.cpp;
IDL:CF/ApplicationFactory/CreateApplicationError:1.0

Looking at the Console, the following error was reported

2015-04-07 14:09:30 INFO  DeviceManager_impl:1626 - Registering device   
GPP_crancentos1 on Device Manager DevMgr_crancentos1
2015-04-07 14:09:30 INFO  DeviceManager_impl:1665 - Initializing device GPP_crancentos1 on Device Manager DevMgr_crancentos1
2015-04-07 14:09:30 INFO  DeviceManager_impl:1840 - Registering device GPP_crancentos1 on Domain Manager
2015-04-07 14:10:21,782 ERROR DCE:9bca8a73-55e6-443f-9925-081db1fcad5b{1}:625 - [Errno 13] Permission denied: 'components'
Traceback (most recent call last):
File "/usr/local/redhawk/core/lib/python/ossie/device.py", line 594, in load
os.mkdir(loadPoint)
OSError: [Errno 13] Permission denied: 'components'

Basic things I have checked:

  1. Confirmed Domain Manager (REDHAWK_DEV) and GPP_crancentos ("crancentos" is the machine name) are running.

  2. Changed the device from "AUTO" to "GPP_crancentos1" on the "Assign Components to Devices" tab

  3. Tried a different waveform. The first component in each waveform throws the same error, even if the component is different. The components are all from the standard group provided in the basic install.

  4. Since the Console implied there was a file access problem, I opened permissions to universal read/write/"do what you want" for /Var/redhawk/sdr/dom/components, HardLimit and cpp subdirectories, and files for the two subdirectories (including the cpp, java, and python diretories).

  5. The RedHawk version is 10.2R2015013000031 and the operating system is CentOS 2.6.32-504.e16X86-64.

It confuses and confounds me that it runs in the sandbox (even before I opened the permissions), which implies the problem is not in the waveform itself, but not under the Domain Manager. I am sure that I am one setting or line of code away from success... but don't know what it is.

Help would be much appreciated!

Brad Meyer AECOM


Solution

  • When a component is launched by the Domain Manager it is "loaded" onto the executable device, the GPP, and then executed. The loading consists of copying the component to the running the GPP into a local cache which is located at $SDRROOT/dev in a hidden directory for each device manager. In this case it appears the user running the Domain Manager or the Device Manager running the GPP don't have permission to write to that directory. One possible explanation might be that the user is not in the redhawk group. When the component is run in the sandbox it does not execute it on the GPP device so this step (and this error) will not occur.