[ https://issues.apache.org/jira/browse/THRIFT-5892?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yuxuan Wang updated THRIFT-5892: -------------------------------- Fix Version/s: 0.23.0 > PY_SSIZE_T_CLEAN error in some environments > ------------------------------------------- > > Key: THRIFT-5892 > URL: https://issues.apache.org/jira/browse/THRIFT-5892 > Project: Thrift > Issue Type: Bug > Components: Python - Library > Affects Versions: 0.16.0, 0.22.0 > Reporter: Csaba Ringhofer > Assignee: Csaba Ringhofer > Priority: Major > Fix For: 0.23.0 > > Time Spent: 20m > Remaining Estimate: 0h > > The error described in THRIFT-5488 comes up in some environments even after > the original fix. I could reproduce this on a chainguard based docked image > (GCC 15), while on my Ubuntu desktop things worked well (GCC 9) . I don't > know the exact cause of the different behavior, on guess is the different GCC > version > Other info on the environment: > Python: 3.11.13 > Thrift: 0.16 / 0.22 / master (probably all versions between but I didn't try) > Adding #define PY_SSIZE_T_CLEAN to > https://github.com/apache/thrift/blob/master/lib/py/src/ext/module.cpp before > including Python.h solved the issue. > The issue was discover in https://github.com/cloudera/impyla which tries to > use the native binary protocol module: > {code} > >>> from impala.dbapi import connect > >>> con=connect(host=...) > >>> cur=con.cursor() > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File > "/tmp/impala-test-3/lib/python3.11/site-packages/impala/hiveserver2.py", line > 129, in cursor > session = self.service.open_session(user, configuration) > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File > "/tmp/impala-test-3/lib/python3.11/site-packages/impala/hiveserver2.py", line > 1189, in open_session > resp = self._rpc('OpenSession', req, True) > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File > "/tmp/impala-test-3/lib/python3.11/site-packages/impala/hiveserver2.py", line > 1082, in _rpc > response = self._execute(func_name, request, retry_on_http_error) > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File > "/tmp/impala-test-3/lib/python3.11/site-packages/impala/hiveserver2.py", line > 1100, in _execute > return func(request) > ^^^^^^^^^^^^^ > File > "/tmp/impala-test-3/lib/python3.11/site-packages/impala/_thrift_gen/TCLIService/TCLIService.py", > line 196, in OpenSession > return self.recv_OpenSession() > ^^^^^^^^^^^^^^^^^^^^^^^ > File > "/tmp/impala-test-3/lib/python3.11/site-packages/impala/_thrift_gen/TCLIService/TCLIService.py", > line 215, in recv_OpenSession > result.read(iprot) > File > "/tmp/impala-test-3/lib/python3.11/site-packages/impala/_thrift_gen/TCLIService/TCLIService.py", > line 1415, in read > iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) > SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)