[issue28120] Bug in _PyDict_Pop() on a splitted table

2017-03-31 Thread Donald Stufft
Changes by Donald Stufft : -- pull_requests: +926 ___ Python tracker ___ ___

[issue28120] Bug in _PyDict_Pop() on a splitted table

2016-09-13 Thread INADA Naoki
INADA Naoki added the comment: Oh, very thank you, Xiang. -- ___ Python tracker ___ ___ Python-bugs-list

[issue28120] Bug in _PyDict_Pop() on a splitted table

2016-09-13 Thread Roundup Robot
Roundup Robot added the comment: New changeset dc627ef9020f by Victor Stinner in branch '3.6': Fix _PyDict_Pop() on pending key https://hg.python.org/cpython/rev/dc627ef9020f -- nosy: +python-dev ___ Python tracker

[issue28120] Bug in _PyDict_Pop() on a splitted table

2016-09-13 Thread STINNER Victor
STINNER Victor added the comment: Thanks Stefan Krah for the bug report, thanks Christian Heimes for helping to identify the bug, and obvious thanks to Xiang Zhang to write a fix with an unit test ;-) -- resolution: -> fixed status: open -> closed versions: +Python 3.7

[issue28120] Bug in _PyDict_Pop() on a splitted table

2016-09-13 Thread Xiang Zhang
Changes by Xiang Zhang : Added file: http://bugs.python.org/file44633/issue28120_v3.patch ___ Python tracker ___

[issue28120] Bug in _PyDict_Pop() on a splitted table

2016-09-13 Thread Xiang Zhang
Xiang Zhang added the comment: v2 now enhances existing dict.pop() unittest to cover this case. -- Added file: http://bugs.python.org/file44632/issue28120_v2.patch ___ Python tracker

[issue28120] Bug in _PyDict_Pop() on a splitted table

2016-09-13 Thread STINNER Victor
STINNER Victor added the comment: +# issue 28120 +c['a'] = 4 Can you please elaborate the comment? Something like: # issue 28120: Try to remove a pending key in a splitted table, # it must not crash -- ___ Python tracker

[issue28120] Bug in _PyDict_Pop() on a splitted table

2016-09-13 Thread Christian Heimes
Christian Heimes added the comment: Good work! This example is a bit easier to understand: class Cls: pass a = Cls() a.x = 1 a.y = 2 b = Cls() b.x = 1 print(hasattr(b, 'y')) print(b.__dict__.pop('y', None)) $ ./python d.py False python: Objects/dictobject.c:1743: _PyDict_Pop: Assertion

[issue28120] Bug in _PyDict_Pop() on a splitted table

2016-09-13 Thread Xiang Zhang
Xiang Zhang added the comment: I submit a patch that can solve this. Actually I find it before but forget about it -- keywords: +patch Added file: http://bugs.python.org/file44631/issue28120.patch ___ Python tracker

[issue28120] Bug in _PyDict_Pop() on a splitted table

2016-09-13 Thread Xiang Zhang
Xiang Zhang added the comment: No need, you can reproduce it by this: >>> class C: ... pass ... >>> a, b = C(), C() >>> a.a, a.b = 1, 2 >>> b.a = 1 >>> b.__dict__.pop('b') python: Objects/dictobject.c:1739: _PyDict_Pop: Assertion `ix >= 0' failed. Aborted (core dumped) -- nosy:

[issue28120] Bug in _PyDict_Pop() on a splitted table

2016-09-13 Thread STINNER Victor
STINNER Victor added the comment: To reproduce the issue: * compile Python 3.6 in debug mode * download https://pypi.python.org/pypi/SQLAlchemy/1.1.0b3 * Then type: --- ./python -m venv venvsqla cd venvsqla source bin/activate python -m pip install pytest tar -xf ../SQLAlchemy-1.1.0b3.tar.gz

[issue28120] Bug in _PyDict_Pop() on a splitted table

2016-09-13 Thread STINNER Victor
Changes by STINNER Victor : -- title: SQLAlchemy's expire_instance() causes _PyDict_Pop: Assertion `ix >= 0' failed. -> Bug in _PyDict_Pop() on a splitted table ___ Python tracker