[ 
https://issues.apache.org/jira/browse/PHOENIX-6863?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Istvan Toth updated PHOENIX-6863:
---------------------------------
    Release Note: 
When using an older 3.x version of the python protobuf library, and it uses the 
'python' implementation instead of the 'cpp' implementation, phoenixdb will 
fail with the following error message: 
AttributeError: 'NoneType' object has no attribute 'enum_types_by_name'

This usually happens when running on Python 2, as 3.17.3 is the last protobuf 
python library version that supports Python 2.

To work around the problem, install the C protobuf library "libprotobuf.so" on 
the system, then reinstall the python protobuf library with the
"pip uninstall protobuf;pip install protobuf"
command.

The protobuf C library is available pre-packaged in most distributions.

> PhoenixDB 1.2+ doesn't work with Python2 on some systems
> --------------------------------------------------------
>
>                 Key: PHOENIX-6863
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6863
>             Project: Phoenix
>          Issue Type: Bug
>          Components: python
>    Affects Versions: python-phoenixdb-1.2.1
>            Reporter: Istvan Toth
>            Assignee: Istvan Toth
>            Priority: Major
>
> On some systems we hit a protobuf bug which causes the following error when 
> importing phoenixdb:
> {noformat}
> (env) [root@aglhue0124-1 ~]# python
> Python 2.7.5 (default, Jul 13 2018, 13:06:57) 
> [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import phoenixdb
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File 
> "/opt/cloudera/parcels/CDH-7.2.17-1.cdh7.2.17.p0.36938352/lib/hue/build/env/lib/python2.7/site-packages/phoenixdb-1.2.1-py2.7.egg/phoenixdb/__init__.py",
>  line 19, in <module>
>     from phoenixdb import errors, types
>   File 
> "/opt/cloudera/parcels/CDH-7.2.17-1.cdh7.2.17.p0.36938352/lib/hue/build/env/lib/python2.7/site-packages/phoenixdb-1.2.1-py2.7.egg/phoenixdb/types.py",
>  line 21, in <module>
>     from phoenixdb.avatica.proto import common_pb2
>   File 
> "/opt/cloudera/parcels/CDH-7.2.17-1.cdh7.2.17.p0.36938352/lib/hue/build/env/lib/python2.7/site-packages/phoenixdb-1.2.1-py2.7.egg/phoenixdb/avatica/__init__.py",
>  line 16, in <module>
>     from .client import AvaticaClient  # noqa: F401
>   File 
> "/opt/cloudera/parcels/CDH-7.2.17-1.cdh7.2.17.p0.36938352/lib/hue/build/env/lib/python2.7/site-packages/phoenixdb-1.2.1-py2.7.egg/phoenixdb/avatica/client.py",
>  line 27, in <module>
>     from phoenixdb.avatica.proto import common_pb2, requests_pb2, 
> responses_pb2
>   File 
> "/opt/cloudera/parcels/CDH-7.2.17-1.cdh7.2.17.p0.36938352/lib/hue/build/env/lib/python2.7/site-packages/phoenixdb-1.2.1-py2.7.egg/phoenixdb/avatica/proto/common_pb2.py",
>  line 36, in <module>
>     _STATEMENTTYPE = DESCRIPTOR.enum_types_by_name['StatementType']
> AttributeError: 'NoneType' object has no attribute 'enum_types_by_name'
> {noformat}
> There are several error reports for this behaviour with the new using the 
> files generated by the new protoc with python2, but the fix is not available 
> in a version that is compatible with Python2.
> We don't see this error when running our dockerized test suite with Python2.
> We need to understand the issue, and figure out a solution.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to