[issue33583] PyObject_GC_Resize() doesn't relink GCHead

2018-05-21 Thread INADA Naoki

Change by INADA Naoki :


--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33583] PyObject_GC_Resize() doesn't relink GCHead

2018-05-21 Thread miss-islington

miss-islington  added the comment:


New changeset 0c1e7d8122808d42f9fdb7019061dc2e78a78efa by Miss Islington (bot) 
in branch '3.6':
bpo-33583: Add note in PyObject_GC_Resize() doc (GH-7021)
https://github.com/python/cpython/commit/0c1e7d8122808d42f9fdb7019061dc2e78a78efa


--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33583] PyObject_GC_Resize() doesn't relink GCHead

2018-05-21 Thread INADA Naoki

INADA Naoki  added the comment:


New changeset 2b4ed5da1d599190c3be0084ee235b0a8f0a75ea by INADA Naoki (Miss 
Islington (bot)) in branch '3.7':
bpo-33583: Add note in PyObject_GC_Resize() doc (GH-7021)
https://github.com/python/cpython/commit/2b4ed5da1d599190c3be0084ee235b0a8f0a75ea


--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33583] PyObject_GC_Resize() doesn't relink GCHead

2018-05-21 Thread miss-islington

miss-islington  added the comment:


New changeset 3ccc31386da5f35f83756a265429831d650db731 by Miss Islington (bot) 
in branch '2.7':
bpo-33583: Add note in PyObject_GC_Resize() doc (GH-7021)
https://github.com/python/cpython/commit/3ccc31386da5f35f83756a265429831d650db731


--
nosy: +miss-islington

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33583] PyObject_GC_Resize() doesn't relink GCHead

2018-05-21 Thread miss-islington

Change by miss-islington :


--
pull_requests: +6676

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33583] PyObject_GC_Resize() doesn't relink GCHead

2018-05-21 Thread miss-islington

Change by miss-islington :


--
pull_requests: +6675

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33583] PyObject_GC_Resize() doesn't relink GCHead

2018-05-21 Thread miss-islington

Change by miss-islington :


--
pull_requests: +6674

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33583] PyObject_GC_Resize() doesn't relink GCHead

2018-05-21 Thread INADA Naoki

INADA Naoki  added the comment:


New changeset 1179f4b40f375af5c59cd4b6be9cc313fa0e1a37 by INADA Naoki in branch 
'master':
bpo-33583: Add note in PyObject_GC_Resize() doc (GH-7021)
https://github.com/python/cpython/commit/1179f4b40f375af5c59cd4b6be9cc313fa0e1a37


--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33583] PyObject_GC_Resize() doesn't relink GCHead

2018-05-20 Thread INADA Naoki

Change by INADA Naoki :


--
assignee:  -> docs@python
components: +Documentation
nosy: +docs@python
versions: +Python 2.7, Python 3.6, Python 3.7, Python 3.8

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33583] PyObject_GC_Resize() doesn't relink GCHead

2018-05-20 Thread INADA Naoki

Change by INADA Naoki :


--
keywords: +patch
pull_requests: +6670
stage:  -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33583] PyObject_GC_Resize() doesn't relink GCHead

2018-05-20 Thread Serhiy Storchaka

Serhiy Storchaka  added the comment:

We can add a check that the object is not tracked and raise a SystemError 
otherwise. Maybe only in the debug build if it affects performance.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33583] PyObject_GC_Resize() doesn't relink GCHead

2018-05-20 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

I think we can simply document it.  I don't think anyone has silently buggy 
code, since it would probably cause a crash as soon as the chain of objects is 
walked.

If we want to fix PyObject_GC_Resize(), we should check that benchmarks are 
unaffected.

--
nosy: +pitrou, serhiy.storchaka

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33583] PyObject_GC_Resize() doesn't relink GCHead

2018-05-20 Thread INADA Naoki

New submission from INADA Naoki :

https://github.com/python/cpython/blob/master/Modules/gcmodule.c#L1750-L1763

PyObject_GC_Resize() calls PyObject_REALLOC(), which can change object's 
address.
But it doesn't relinking:

 g->gc.gc_prev->gc.gc_next = g
 g->gc.gc_next->gc.gc_prev = g

So this API can't be used for tracked object.
In CPython code, all callers use this API for non tracked objects.

But if some extension module author used this API for tracked objects, it will 
cause hard to debug behavior.

Which should we do?

1. Add relinking to PyObject_GC_Resize()
2. Add note in the document

If 1, should we backport it to 3.7 and 3.6?

--
components: Interpreter Core
messages: 317158
nosy: inada.naoki
priority: normal
severity: normal
status: open
title: PyObject_GC_Resize() doesn't relink GCHead
type: behavior

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com