intake / intake/python-snappy

pypy seg fault on larger byte arrays

オープン
#36 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
490
フォーク
104
PR マージ指標
30日以内にマージされた PR はありません

説明

This came up in a pykafka compression issue.

https://github.com/Parsely/pykafka/issues/508

So byte arrays above a certain size causes a seg fault.

```
(pypy) ➜ cat s.py
from uuid import uuid4
import snappy

payload = b''.join([uuid4().bytes for i in range(10)])

c = snappy.compress(payload)
assert snappy.decompress(c) == payload
(pypy) ➜ python s.py
[1] 4587 segmentation fault (core dumped) python s.py
(pypy) ➜ python
Python 2.7.10 (bbd45126bc69, Mar 18 2016, 21:35:08)
[PyPy 5.0.1 with GCC 4.8.4] on linux2
```

while

```
from uuid import uuid4
import snappy

payload = b''.join([uuid4().bytes for i in range(5)])

c = snappy.compress(payload)
assert snappy.decompress(c) == payload
```

passes

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

Start by running the s.py reproduction from the issue with five and ten UUID byte arrays under PyPy 5.0.1, and compare the compression and decompression assertions. Then trace the python-snappy binding involved in those calls and use the pykafka issue for context. Done means larger byte arrays complete without a segmentation fault and the assertions still pass.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
backend
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。