Bug #73241 | Unable to use a local python client against localhost fabric address | ||
---|---|---|---|
Submitted: | 9 Jul 2014 10:56 | Modified: | 25 Sep 2014 16:25 |
Reporter: | george sibley | Email Updates: | |
Status: | Won't fix | Impact on me: | |
Category: | MySQL Fabric | Severity: | S3 (Non-critical) |
Version: | 1.4.3 | OS: | Linux (ubuntu 3.11.0-18-generic) |
Assigned to: | Assigned Account | CPU Architecture: | Any |
[9 Jul 2014 10:56]
george sibley
[30 Jul 2014 13:18]
Mats Kindahl
I am sorry, but it is a little unclear what you are trying to do. Could you please add a sample program that demonstrates what you are trying to do? That section in the configuration file is used by mysqlfabric to connect to a Fabric server using HTTP. If you try to connect to that port using a normal connector, it will not work since connectors are expecting a MySQL Protocol at that endpoint and it looks like you're trying to connect to a HTTP server using the MySQL protocol. The address can be used when configuring a Fabric-aware connector, but if you have a sample program it would help to see if there is a bug or not.
[25 Sep 2014 16:19]
Alfranio Tavares Correia Junior
Hi George Sibley, Thank you for the report. The problem happens because the connector python accepts a seed node as an input parameter and then fetches a list of Fabric nodes (currently only one) from the seed node it connected to. The information returned though is the following: [DEBUG] 1411660572.553888 - XML-RPC-Session-0 - Encoded packet: [1, '5ca1ab1e-a007-feed-f00d-cab3fe13249e', 1, '', [{'info': {'names': ['host', 'port']}, 'rows': [('', 32274)]}]] Note that the host is empty. The connector python then uses this list blindly without checking whether the host is empty or not and by consequence the connection fails: File "fabric-demo.py", line 132, in <module> exit(main()) File "fabric-demo.py", line 128, in main client = Client(fabric_host, fabric_port, options.group, options.user, options.passwd) File "fabric-demo.py", line 34, in __init__ self.__cnx = connect(**params) File "/usr/local/lib/python2.7/dist-packages/mysql/connector/__init__.py", line 143, in connect return fabric_connect(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/mysql/connector/fabric/__init__.py", line 60, in connect return MySQLFabricConnection(**kwargs) File "/usr/local/lib/python2.7/dist-packages/mysql/connector/fabric/connection.py", line 967, in __init__ self.store_config(**kwargs) File "/usr/local/lib/python2.7/dist-packages/mysql/connector/fabric/connection.py", line 1106, in store_config self._configure_fabric(config['fabric']) File "/usr/local/lib/python2.7/dist-packages/mysql/connector/fabric/connection.py", line 1087, in _configure_fabric self._fabric.seed() File "/usr/local/lib/python2.7/dist-packages/mysql/connector/fabric/connection.py", line 457, in seed inst.connect() File "/usr/local/lib/python2.7/dist-packages/mysql/connector/fabric/connection.py", line 921, in connect self._proxy = self._xmlrpc_get_proxy() File "/usr/local/lib/python2.7/dist-packages/mysql/connector/fabric/connection.py", line 905, in _xmlrpc_get_proxy proxy._some_nonexisting_method() # pylint: disable=W0212 File "/usr/lib/python2.7/xmlrpclib.py", line 1224, in __call__ return self.__send(self.__name, args) File "/usr/lib/python2.7/xmlrpclib.py", line 1578, in __request verbose=self.__verbose File "/usr/local/lib/python2.7/dist-packages/mysql/connector/fabric/connection.py", line 368, in request raise InterfaceError("Connection with Fabric failed: " + msg) mysql.connector.errors.InterfaceError: Connection with Fabric failed: <urlopen error [Errno -2] Name or service not known>
[25 Sep 2014 16:20]
Alfranio Tavares Correia Junior
Please, set an address explicitly as workaround. [protocol.xmlrpc] address = address:32274 Cheers.
[6 Jul 2017 19:19]
Bugs System
Status updated to 'Won't fix' (Fabric is now covered under Oracle Lifetime Sustaining Support)