Uploaded image for project: 'Ambari'
  1. Ambari
  2. AMBARI-13923

Ambari Blueprint deployment fails during HBase Client install: "TypeError: expected string or buffer"

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Cannot Reproduce
    • 2.1.0
    • 2.2.0
    • None
    • HDP 2.3

    Description

      When deploying a cluster using blueprints the install fails with the following exception:

      Traceback (most recent call last):
        File "/var/lib/ambari-agent/cache/common-services/HBASE/0.96.0.2.0/package/scripts/hbase_client.py", line 80, in <module>
          HbaseClient().execute()
        File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 216, in execute
          method(env)
        File "/var/lib/ambari-agent/cache/common-services/HBASE/0.96.0.2.0/package/scripts/hbase_client.py", line 32, in install
          import params
        File "/var/lib/ambari-agent/cache/common-services/HBASE/0.96.0.2.0/package/scripts/params.py", line 26, in <module>
          from params_linux import *
        File "/var/lib/ambari-agent/cache/common-services/HBASE/0.96.0.2.0/package/scripts/params_linux.py", line 106, in <module>
          regionserver_xmn_size = calc_xmn_from_xms(regionserver_heapsize, regionserver_xmn_percent, regionserver_xmn_max)
        File "/var/lib/ambari-agent/cache/common-services/HBASE/0.96.0.2.0/package/scripts/functions.py", line 34, in calc_xmn_from_xms
          heapsize = int(re.search('\d+',heapsize_str).group(0))
        File "/usr/lib64/python2.7/re.py", line 142, in search
          return _compile(pattern, flags).search(string)
      TypeError: expected string or buffer
      

      There is a similar bug AMBARI-5066 but that one was resolved in Ambari 1.5 and this is Ambari 2.1

      Looking at the code it looks like it should be testing the heapsize_str variable is actually a string before passing it to re.search in /var/lib/ambari-agent/cache/common-services/HBASE/0.96.0.2.0/package/scripts/functions.py, or probably catch in an earlier calling method and raise the source issue to the user, ie "you forgot to enter a value for parameter X", or just set a default value if none is passed.

      Attachments

        1. AMBARI-13923-1.png
          335 kB
          Amruta Borkar
        2. AMBARI-13923-2.png
          276 kB
          Amruta Borkar
        3. erringblueprint.json
          39 kB
          Amruta Borkar

        Activity

          People

            arborkar Amruta Borkar
            harisekhon Hari Sekhon
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: