Skip to content

NameError: global name 'namespace' is not defined in prop_helpers.py line 256 #56

Description

@nimartet

When using Redhawk 2.10 + the solution described in issue 55, launching a component in the python sandbox sometimes results in the following error:

bash-4.2# python -i VocoderFileCapture.py 
/usr/bin/python 2.7.5 (default, Jun 28 2022, 15:30:04) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
Traceback (most recent call last):
  File "VocoderFileCapture.py", line 9, in <module>
    sb.launch("spx.VocoderService")
  File "/usr/local/redhawk/core/lib/python/ossie/utils/sb/domainless.py", line 1358, in launch
    objType=objType, shared=shared, stdout=stdout)
  File "/usr/local/redhawk/core/lib/python/ossie/utils/sandbox/base.py", line 260, in launch
    comp = clazz(self, profile, spd, scd, prf, instanceName, refid, impl)
  File "/usr/local/redhawk/core/lib/python/ossie/utils/sandbox/model.py", line 183, in __init__
    SandboxResource.__init__(self, *args, **kwargs)
  File "/usr/local/redhawk/core/lib/python/ossie/utils/sandbox/model.py", line 54, in __init__
    ComponentBase.__init__(self, spd, scd, prf, instanceName, refid, impl)
  File "/usr/local/redhawk/core/lib/python/ossie/utils/model/__init__.py", line 1417, in __init__
    super(ComponentBase, self).__init__(prf, refid)
  File "/usr/local/redhawk/core/lib/python/ossie/utils/model/__init__.py", line 1088, in __init__
    includeNil=True)
  File "/usr/local/redhawk/core/lib/python/ossie/utils/model/__init__.py", line 1209, in _getPropertySet
    p.clean_name = _prop_helpers.addCleanName(id_clean, prop.get_id(), _displayNames, _duplicateNames)
  File "/usr/local/redhawk/core/lib/python/ossie/utils/prop_helpers.py", line 256, in addCleanName
    count = _duplicateNames[cleanName][namespace] + 1
NameError: global name 'namespace' is not defined

This does not occur for all components. For example, I can launch other components not provided by redhawk successfully.
After some investigation, I found what appears to be a discrepancy in variable names being used in $OSSIEHOME/lib/python/ossie/utils/prop_helpers.py in the addCleanName function (namespace vs namesp). After correcting the discrepancy, I as able to launch the component.

The following diff is now used as a patch file when building our redhawk container:

bash-4.2# diff -Naur prop_helpers.py.orig prop_helpers.py
--- prop_helpers.py.orig	2023-03-22 14:05:49.154086762 +0000
+++ prop_helpers.py	2023-03-22 14:07:14.350943467 +0000
@@ -253,9 +253,9 @@
         return retval
     elif _displayNames[cleanName] != id:
         if namesp in _duplicateNames[cleanName]:
-            count = _duplicateNames[cleanName][namespace] + 1
+            count = _duplicateNames[cleanName][namesp] + 1
             _displayNames[cleanName + str(count)] = id
-            _duplicateNames[cleanName][namespace] = count
+            _duplicateNames[cleanName][namesp] = count
             retval=cleanName + str(count)
         else:
             _duplicateNames[cleanName][namesp] = 0

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions