8 Replies Latest reply on Dec 8, 2014 11:34 AM by Phillip Burger

    TableauException (204): bind: Cannot assign requested address

    Phillip Burger

      I'm getting a TableauException (204): bind: Cannot assign requested address when executing makeorders.py.  Any one else running into this?

       

      I trapped it to this operation:

       

      >>> table = Extract('order2-py.tde').addTable('Extract', tableDef)

      Traceback (most recent call last):

        File "<stdin>", line 1, in <module>

        File "/home/user/.local/lib/python2.7/site-packages/dataextract/Base.py", line 473, in __init__

          raise Exceptions.TableauException(ret, wstring_at(tablib.TabGetLastErrorMessage()))

      dataextract.Exceptions.TableauException: TableauException (204): bind: Cannot assign requested address

      >>>

       

      Any one else running into this? Suggestions for fixing?

       

      On Linux. My system info:

       

      [user@server bin]$ uname

      Linux server 2.6.32-220.el6.x86_64 x86_64 GNU/Linux

      [user@server bin]$ cat /etc/*-release

      CentOS release 6.2

      [user@server bin]$ python -V

      Python 2.7.5

       

      The Tableau TDE API version is:

      DataExtract-8200.14.0819.2015

        • 1. Re: TableauException (204): bind: Cannot assign requested address
          Phillip Burger

          I'm back to trying to solve this problem. I am in root when executing my makeorder2.py script. The problem is happening when recreating the object. See immediate code below.  It's


           

            File "/usr/lib/python2.6/site-packages/dataextract/Base.py", line 473, in __init__

              raise Exceptions.TableauException(ret, wstring_at(tablib.TabGetLastErrorMessage()))

          dataextract.Exceptions.TableauException: TableauException (204): bind: Cannot assign requested address

           

          I was looking at Types.py. See Types.py snippet below code. This is a data engine related error.

           

          class Extract(object):

              """A Tableau Data Engine database."""

           

           

              def __init__(

                  self

                , path

              ):

                  """Create an extract object with an absolute or relative file system path. If the file already exists, following row insertion will be appended to the original file. This object must be closed."""

           

           

                  self._handle = c_void_p(None)

           

           

                  if path == None:

                      raise ValueError('path must not be None')

           

           

                  ret = tablib.TabExtractCreate(

                      byref(self._handle)

                    , StringUtils.ToTableauString(path)

                  )

           

           

                  if int(ret) != int(Types.Result.SUCCESS):

                      raise Exceptions.TableauException(ret, wstring_at(tablib.TabGetLastErrorMessage()))

           

          Types.py snippet showing error codes. I'm not sure if the numbers actually start at 200 (probably) or at 201.

           

              NO_SUCH_DATABASE      = c_int.in_dll(tablib, "TAB_RESULT_NoSuchDatabase").value                 # Data Engine errors start at 200.

              QUERY_ERROR           = c_int.in_dll(tablib, "TAB_RESULT_QueryError").value                     #

              NULL_ARGUMENT         = c_int.in_dll(tablib, "TAB_RESULT_NullArgument").value                   #

              DATA_ENGINE_ERROR     = c_int.in_dll(tablib, "TAB_RESULT_DataEngineError").value                #

              CANCELLED             = c_int.in_dll(tablib, "TAB_RESULT_Cancelled").value                      #

              BAD_INDEX             = c_int.in_dll(tablib, "TAB_RESULT_BadIndex").value                       #

              PROTOCOL_ERROR        = c_int.in_dll(tablib, "TAB_RESULT_ProtocolError").value                  #

              NETWORK_ERROR         = c_int.in_dll(tablib, "TAB_RESULT_NetworkError").value                   #

          • 2. Re: TableauException (204): bind: Cannot assign requested address
            Jeff D

            [incorrect information was removed by the author]

            • 3. Re: TableauException (204): bind: Cannot assign requested address
              Phillip Burger

              What's the port number that tdserver64 uses?

               

              How do you know what TableauException (204): bind: Cannot assign requested means? What is the reasoning for your answer?

               

              No sarcasm, I just need more information to help me solve my problem. This is for a production application and I need to get past this error.

               

              A case is open with Tableau. Tableau tech support has not provided help except to say it's a Python error and provide links to stackoverflow.com posts.

               

              Please help.

              • 4. Re: TableauException (204): bind: Cannot assign requested address
                Phillip Burger

                I'll add that I loaded the API on a brand new VM tonight.

                 

                The first time I attempted to execute the sample code this evening, I encountered the same error as noted above.

                 

                I'll check ports.

                 

                Can any readers confirm that the Python 64-bit API is reliably used on RHEL/CentOS in production?

                • 5. Re: TableauException (204): bind: Cannot assign requested address
                  Jeff D

                  [incorrect information was removed by the author]

                  • 6. Re: TableauException (204): bind: Cannot assign requested address
                    Phillip Burger

                    The port is not open.

                     

                    I'll get the port open and reply back.

                    • 7. Re: TableauException (204): bind: Cannot assign requested address
                      Jeff D

                      Hi Phillip, have you gotten past this problem?

                      • 8. Re: TableauException (204): bind: Cannot assign requested address
                        Phillip Burger

                        Enable IPv6 to avoid the error.

                         

                        The Linux version of the API requires that IPv6 be enabled on the server that it is installed on. The API does not automatically fall back to using IPv4 if IPv6 is not enabled. Few installations are currently configured to support IPv6 on their networks.

                         

                        I opened a case with Tableau. The case was escalated. The TDE API should support IPv4. The Tableau engineer who worked the case opened a bug. Tableau is going to change the Linux version of the API so that it can run on servers that have only IPv4 enabled. An ETA is not currently available.

                         

                        At my installation, we are not going to enable IPv6 on the server the TDE API is installed on due to the possibility of broad, negative ramifications to our network. We are going to wait for the version of the TDE API that supports IPv4.