You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am running Python 2.7.1 under Valgrind 3.6.1 on a x86_64 GNU/Linux box. Valgrind is flagging errors that are not covered by the standard suppressions file (Misc/valgrind-python.supp; after uncommenting the part I'm supposed to), e.g.:
==5804== Use of uninitialised value of size 8
==5804== at 0x4EBA956: PyObject_Free (obmalloc.c:958)
==5804== by 0x4E85D65: code_dealloc (codeobject.c:317)
==5804== by 0x4ECE23C: tupledealloc (tupleobject.c:220)
==5804== by 0x4E85E42: code_dealloc (codeobject.c:308)
==5804== by 0x4F3315D: load_source_module (import.c:1022)
==5804== by 0x4F33F7E: import_submodule (import.c:2596)
==5804== by 0x4F3420E: load_next (import.c:2416)
==5804== by 0x4F3484F: import_module_level (import.c:2137)
==5804== by 0x4F34DA3: PyImport_ImportModuleLevel (import.c:2189)
==5804== by 0x4F16ABE: builtin___import__ (bltinmodule.c:49)
==5804== by 0x4E6DA42: PyObject_Call (abstract.c:2529)
==5804== by 0x4F16F82: PyEval_CallObjectWithKeywords (ceval.c:3881)
==5804== Use of uninitialised value of size 8
==5804== at 0x4EBA956: PyObject_Free (obmalloc.c:958)
==5804== by 0x4E85D65: code_dealloc (codeobject.c:317)
==5804== by 0x4F3315D: load_source_module (import.c:1022)
==5804== by 0x4F33F7E: import_submodule (import.c:2596)
==5804== by 0x4F3420E: load_next (import.c:2416)
==5804== by 0x4F3484F: import_module_level (import.c:2137)
==5804== by 0x4F34DA3: PyImport_ImportModuleLevel (import.c:2189)
==5804== by 0x4F16ABE: builtin___import__ (bltinmodule.c:49)
==5804== by 0x4E6DA42: PyObject_Call (abstract.c:2529)
==5804== by 0x4F16F82: PyEval_CallObjectWithKeywords (ceval.c:3881)
==5804== by 0x4F1ACD3: PyEval_EvalFrameEx (ceval.c:2332)
==5804== by 0x4F1F347: PyEval_EvalCodeEx (ceval.c:3252)
etc.
Perhaps the suppressions file covers only 32-bit machines, because if I add:
{
ADDRESS_IN_RANGE/Use of uninitialised value of size 8
Memcheck:Addr8
fun:PyObject_Free
}
{
ADDRESS_IN_RANGE/Use of uninitialised value of size 8
Memcheck:Value8
fun:PyObject_Free
}
{
ADDRESS_IN_RANGE/Use of uninitialised value of size 8
Memcheck:Addr8
fun:PyObject_Realloc
}
{
ADDRESS_IN_RANGE/Use of uninitialised value of size 8
Memcheck:Value8
fun:PyObject_Realloc
}
(i.e., "Value8" instead of "Value4") then all is clear.
ZhipingDeng commented on Dec 1, 2011
ZhipingDengmannequin
Mannequin
More actions
It works for me!
neologix commented on Dec 1, 2011
neologixmannequin
Mannequin
More actions
Could you please provide a diff ?
Also, they should probably be commented by default (as other obmalloc-related calls).
PaulPrice commented on Dec 1, 2011
PaulPricemannequin
MannequinAuthor
More actions
Here's the diff with the added sections commented out.
Activity
PaulPrice commentedon Jul 22, 2011
I am running Python 2.7.1 under Valgrind 3.6.1 on a x86_64 GNU/Linux box. Valgrind is flagging errors that are not covered by the standard suppressions file (Misc/valgrind-python.supp; after uncommenting the part I'm supposed to), e.g.:
==5804== Use of uninitialised value of size 8
==5804== at 0x4EBA956: PyObject_Free (obmalloc.c:958)
==5804== by 0x4E85D65: code_dealloc (codeobject.c:317)
==5804== by 0x4ECE23C: tupledealloc (tupleobject.c:220)
==5804== by 0x4E85E42: code_dealloc (codeobject.c:308)
==5804== by 0x4F3315D: load_source_module (import.c:1022)
==5804== by 0x4F33F7E: import_submodule (import.c:2596)
==5804== by 0x4F3420E: load_next (import.c:2416)
==5804== by 0x4F3484F: import_module_level (import.c:2137)
==5804== by 0x4F34DA3: PyImport_ImportModuleLevel (import.c:2189)
==5804== by 0x4F16ABE: builtin___import__ (bltinmodule.c:49)
==5804== by 0x4E6DA42: PyObject_Call (abstract.c:2529)
==5804== by 0x4F16F82: PyEval_CallObjectWithKeywords (ceval.c:3881)
==5804== Use of uninitialised value of size 8
==5804== at 0x4EBA956: PyObject_Free (obmalloc.c:958)
==5804== by 0x4E85D65: code_dealloc (codeobject.c:317)
==5804== by 0x4F3315D: load_source_module (import.c:1022)
==5804== by 0x4F33F7E: import_submodule (import.c:2596)
==5804== by 0x4F3420E: load_next (import.c:2416)
==5804== by 0x4F3484F: import_module_level (import.c:2137)
==5804== by 0x4F34DA3: PyImport_ImportModuleLevel (import.c:2189)
==5804== by 0x4F16ABE: builtin___import__ (bltinmodule.c:49)
==5804== by 0x4E6DA42: PyObject_Call (abstract.c:2529)
==5804== by 0x4F16F82: PyEval_CallObjectWithKeywords (ceval.c:3881)
==5804== by 0x4F1ACD3: PyEval_EvalFrameEx (ceval.c:2332)
==5804== by 0x4F1F347: PyEval_EvalCodeEx (ceval.c:3252)
etc.
Perhaps the suppressions file covers only 32-bit machines, because if I add:
{
ADDRESS_IN_RANGE/Use of uninitialised value of size 8
Memcheck:Addr8
fun:PyObject_Free
}
{
ADDRESS_IN_RANGE/Use of uninitialised value of size 8
Memcheck:Value8
fun:PyObject_Free
}
{
ADDRESS_IN_RANGE/Use of uninitialised value of size 8
Memcheck:Addr8
fun:PyObject_Realloc
}
{
ADDRESS_IN_RANGE/Use of uninitialised value of size 8
Memcheck:Value8
fun:PyObject_Realloc
}
(i.e., "Value8" instead of "Value4") then all is clear.
ZhipingDeng commentedon Dec 1, 2011
It works for me!
neologix commentedon Dec 1, 2011
Could you please provide a diff ?
Also, they should probably be commented by default (as other obmalloc-related calls).
PaulPrice commentedon Dec 1, 2011
Here's the diff with the added sections commented out.
python-dev commentedon Dec 3, 2011
New changeset 3eb73f45a614 by Charles-François Natali in branch 'default':
Issue bpo-12612: Add some Valgrind suppressions for 64-bit machines. Patch by Paul
http://hg.python.org/cpython/rev/3eb73f45a614
neologix commentedon Dec 3, 2011
Committed, thanks for the patch!
PaulPrice commentedon Dec 3, 2011
Welcome. Thank you!
mgedmin commentedon Nov 5, 2015
Could this fix be backported to the 2.7 branch as well?
python-dev commentedon Nov 5, 2015
New changeset 92dda5f00b0f by doko in branch '2.7':
Issue bpo-12612: Add some Valgrind suppressions for 64-bit machines.
https://hg.python.org/cpython/rev/92dda5f00b0f