Cassandra Python驱动程序3.0.0“IndexError:Buffer slice out of bounds”异常

时间:2016-01-14 02:08:04

标签: python cassandra datastax

目前我们在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个条目。

1 个答案:

答案 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”

确保在重新安装之前卸载。