目前我们在ubuntu 14.04上使用Cassandra Python驱动程序3.0.0,当检索到的行包含大型地图时,我们遇到了“IndexError:Buffer slice out of bounds”的例外。
>>> query = 'SELECT "user_id", "data" FROM users WHERE user_id IN (bb47d269-73a6-475a-9283-0002e2a0872a, 81258ffd-fbb0-47e6-8a5e-0003208880ba)'
>>> future = store.session.execute_async(query)
>>> future.result() <- exception generated here
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "cassandra/cluster.py", line 3122, in cassandra.cluster.ResponseFuture.result (cassandra/cluster.c:59993)
IndexError: Buffer slice out of bounds
数据是地图,包含约3000个条目。
答案 0 :(得分:2)
这看起来非常类似于已经打开的问题,位于此处。
https://datastax-oss.atlassian.net/browse/PYTHON-459
修复程序还没有在主要版本中发布,但它应该在3.1中。在此期间,您可以通过使用--no-cython标志安装驱动程序来解决此问题。你可能会看到一个小的性能,但它应该解决你的问题。
如果您使用pip进行安装,那么在安装时禁用cython的万无一失的方法就是运行。
“CASS_DRIVER_NO_CYTHON = 1 pip install casandra-driver”
确保在重新安装之前卸载。