mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 10:26:02 +00:00 
			
		
		
		
	 1919b7e72b
			
		
	
	
		1919b7e72b
		
	
	
	
	
		
			
			up the decimal module. Performance gains of the new C implementation are between 12x and 80x, depending on the application.
		
			
				
	
	
		
			471 lines
		
	
	
	
		
			8.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			471 lines
		
	
	
	
		
			8.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #
 | |
| # This is a valgrind suppression file that should be used when using valgrind.
 | |
| #
 | |
| #  Here's an example of running valgrind:
 | |
| #
 | |
| #	cd python/dist/src
 | |
| #	valgrind --tool=memcheck --suppressions=Misc/valgrind-python.supp \
 | |
| #		./python -E ./Lib/test/regrtest.py -u gui,network
 | |
| #
 | |
| # You must edit Objects/obmalloc.c and uncomment Py_USING_MEMORY_DEBUGGER
 | |
| # to use the preferred suppressions with Py_ADDRESS_IN_RANGE.
 | |
| #
 | |
| # If you do not want to recompile Python, you can uncomment
 | |
| # suppressions for PyObject_Free and PyObject_Realloc.
 | |
| #
 | |
| # See Misc/README.valgrind for more information.
 | |
| 
 | |
| # all tool names: Addrcheck,Memcheck,cachegrind,helgrind,massif
 | |
| {
 | |
|    ADDRESS_IN_RANGE/Invalid read of size 4
 | |
|    Memcheck:Addr4
 | |
|    fun:Py_ADDRESS_IN_RANGE
 | |
| }
 | |
| 
 | |
| {
 | |
|    ADDRESS_IN_RANGE/Invalid read of size 4
 | |
|    Memcheck:Value4
 | |
|    fun:Py_ADDRESS_IN_RANGE
 | |
| }
 | |
| 
 | |
| {
 | |
|    ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64 aka amd64)
 | |
|    Memcheck:Value8
 | |
|    fun:Py_ADDRESS_IN_RANGE
 | |
| }
 | |
| 
 | |
| {
 | |
|    ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
 | |
|    Memcheck:Cond
 | |
|    fun:Py_ADDRESS_IN_RANGE
 | |
| }
 | |
| 
 | |
| #
 | |
| # Leaks (including possible leaks)
 | |
| #    Hmmm, I wonder if this masks some real leaks.  I think it does.
 | |
| #    Will need to fix that.
 | |
| #
 | |
| 
 | |
| {
 | |
|    Suppress leaking the GIL.  Happens once per process, see comment in ceval.c.
 | |
|    Memcheck:Leak
 | |
|    fun:malloc
 | |
|    fun:PyThread_allocate_lock
 | |
|    fun:PyEval_InitThreads
 | |
| }
 | |
| 
 | |
| {
 | |
|    Suppress leaking the GIL after a fork.
 | |
|    Memcheck:Leak
 | |
|    fun:malloc
 | |
|    fun:PyThread_allocate_lock
 | |
|    fun:PyEval_ReInitThreads
 | |
| }
 | |
| 
 | |
| {
 | |
|    Suppress leaking the autoTLSkey.  This looks like it shouldn't leak though.
 | |
|    Memcheck:Leak
 | |
|    fun:malloc
 | |
|    fun:PyThread_create_key
 | |
|    fun:_PyGILState_Init
 | |
|    fun:Py_InitializeEx
 | |
|    fun:Py_Main
 | |
| }
 | |
| 
 | |
| {
 | |
|    Hmmm, is this a real leak or like the GIL?
 | |
|    Memcheck:Leak
 | |
|    fun:malloc
 | |
|    fun:PyThread_ReInitTLS
 | |
| }
 | |
| 
 | |
| {
 | |
|    Handle PyMalloc confusing valgrind (possibly leaked)
 | |
|    Memcheck:Leak
 | |
|    fun:realloc
 | |
|    fun:_PyObject_GC_Resize
 | |
|    fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING
 | |
| }
 | |
| 
 | |
| {
 | |
|    Handle PyMalloc confusing valgrind (possibly leaked)
 | |
|    Memcheck:Leak
 | |
|    fun:malloc
 | |
|    fun:_PyObject_GC_New
 | |
|    fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING
 | |
| }
 | |
| 
 | |
| {
 | |
|    Handle PyMalloc confusing valgrind (possibly leaked)
 | |
|    Memcheck:Leak
 | |
|    fun:malloc
 | |
|    fun:_PyObject_GC_NewVar
 | |
|    fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING
 | |
| }
 | |
| 
 | |
| #
 | |
| # Non-python specific leaks
 | |
| #
 | |
| 
 | |
| {
 | |
|    Handle pthread issue (possibly leaked)
 | |
|    Memcheck:Leak
 | |
|    fun:calloc
 | |
|    fun:allocate_dtv
 | |
|    fun:_dl_allocate_tls_storage
 | |
|    fun:_dl_allocate_tls
 | |
| }
 | |
| 
 | |
| {
 | |
|    Handle pthread issue (possibly leaked)
 | |
|    Memcheck:Leak
 | |
|    fun:memalign
 | |
|    fun:_dl_allocate_tls_storage
 | |
|    fun:_dl_allocate_tls
 | |
| }
 | |
| 
 | |
| ###{
 | |
| ###   ADDRESS_IN_RANGE/Invalid read of size 4
 | |
| ###   Memcheck:Addr4
 | |
| ###   fun:PyObject_Free
 | |
| ###}
 | |
| ###
 | |
| ###{
 | |
| ###   ADDRESS_IN_RANGE/Invalid read of size 4
 | |
| ###   Memcheck:Value4
 | |
| ###   fun:PyObject_Free
 | |
| ###}
 | |
| ###
 | |
| ###{
 | |
| ###   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/Conditional jump or move depends on uninitialised value
 | |
| ###   Memcheck:Cond
 | |
| ###   fun:PyObject_Free
 | |
| ###}
 | |
| 
 | |
| ###{
 | |
| ###   ADDRESS_IN_RANGE/Invalid read of size 4
 | |
| ###   Memcheck:Addr4
 | |
| ###   fun:PyObject_Realloc
 | |
| ###}
 | |
| ###
 | |
| ###{
 | |
| ###   ADDRESS_IN_RANGE/Invalid read of size 4
 | |
| ###   Memcheck:Value4
 | |
| ###   fun:PyObject_Realloc
 | |
| ###}
 | |
| ###
 | |
| ###{
 | |
| ###   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
 | |
| ###}
 | |
| ###
 | |
| ###{
 | |
| ###   ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
 | |
| ###   Memcheck:Cond
 | |
| ###   fun:PyObject_Realloc
 | |
| ###}
 | |
| 
 | |
| ###
 | |
| ### All the suppressions below are for errors that occur within libraries
 | |
| ### that Python uses.  The problems to not appear to be related to Python's
 | |
| ### use of the libraries.
 | |
| ###
 | |
| 
 | |
| {
 | |
|    Generic ubuntu ld problems
 | |
|    Memcheck:Addr8
 | |
|    obj:/lib/ld-2.4.so
 | |
|    obj:/lib/ld-2.4.so
 | |
|    obj:/lib/ld-2.4.so
 | |
|    obj:/lib/ld-2.4.so
 | |
| }
 | |
| 
 | |
| {
 | |
|    Generic gentoo ld problems
 | |
|    Memcheck:Cond
 | |
|    obj:/lib/ld-2.3.4.so
 | |
|    obj:/lib/ld-2.3.4.so
 | |
|    obj:/lib/ld-2.3.4.so
 | |
|    obj:/lib/ld-2.3.4.so
 | |
| }
 | |
| 
 | |
| {
 | |
|    DBM problems, see test_dbm
 | |
|    Memcheck:Param
 | |
|    write(buf)
 | |
|    fun:write
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    fun:dbm_close
 | |
| }
 | |
| 
 | |
| {
 | |
|    DBM problems, see test_dbm
 | |
|    Memcheck:Value8
 | |
|    fun:memmove
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    fun:dbm_store
 | |
|    fun:dbm_ass_sub
 | |
| }
 | |
| 
 | |
| {
 | |
|    DBM problems, see test_dbm
 | |
|    Memcheck:Cond
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    fun:dbm_store
 | |
|    fun:dbm_ass_sub
 | |
| }
 | |
| 
 | |
| {
 | |
|    DBM problems, see test_dbm
 | |
|    Memcheck:Cond
 | |
|    fun:memmove
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    obj:/usr/lib/libdb1.so.2
 | |
|    fun:dbm_store
 | |
|    fun:dbm_ass_sub
 | |
| }
 | |
| 
 | |
| {
 | |
|    GDBM problems, see test_gdbm
 | |
|    Memcheck:Param
 | |
|    write(buf)
 | |
|    fun:write
 | |
|    fun:gdbm_open
 | |
| 
 | |
| }
 | |
| 
 | |
| {
 | |
|    ZLIB problems, see test_gzip
 | |
|    Memcheck:Cond
 | |
|    obj:/lib/libz.so.1.2.3
 | |
|    obj:/lib/libz.so.1.2.3
 | |
|    fun:deflate
 | |
| }
 | |
| 
 | |
| {
 | |
|    Avoid problems w/readline doing a putenv and leaking on exit
 | |
|    Memcheck:Leak
 | |
|    fun:malloc
 | |
|    fun:xmalloc
 | |
|    fun:sh_set_lines_and_columns
 | |
|    fun:_rl_get_screen_size
 | |
|    fun:_rl_init_terminal_io
 | |
|    obj:/lib/libreadline.so.4.3
 | |
|    fun:rl_initialize
 | |
| }
 | |
| 
 | |
| ###
 | |
| ### These occur from somewhere within the SSL, when running
 | |
| ###  test_socket_sll.  They are too general to leave on by default.
 | |
| ###
 | |
| ###{
 | |
| ###   somewhere in SSL stuff
 | |
| ###   Memcheck:Cond
 | |
| ###   fun:memset
 | |
| ###}
 | |
| ###{
 | |
| ###   somewhere in SSL stuff
 | |
| ###   Memcheck:Value4
 | |
| ###   fun:memset
 | |
| ###}
 | |
| ###
 | |
| ###{
 | |
| ###   somewhere in SSL stuff
 | |
| ###   Memcheck:Cond
 | |
| ###   fun:MD5_Update
 | |
| ###}
 | |
| ###
 | |
| ###{
 | |
| ###   somewhere in SSL stuff
 | |
| ###   Memcheck:Value4
 | |
| ###   fun:MD5_Update
 | |
| ###}
 | |
| 
 | |
| # Fedora's package "openssl-1.0.1-0.1.beta2.fc17.x86_64" on x86_64
 | |
| # See http://bugs.python.org/issue14171
 | |
| {
 | |
|    openssl 1.0.1 prng 1
 | |
|    Memcheck:Cond
 | |
|    fun:bcmp
 | |
|    fun:fips_get_entropy
 | |
|    fun:FIPS_drbg_instantiate
 | |
|    fun:RAND_init_fips
 | |
|    fun:OPENSSL_init_library
 | |
|    fun:SSL_library_init
 | |
|    fun:init_hashlib
 | |
| }
 | |
| 
 | |
| {
 | |
|    openssl 1.0.1 prng 2
 | |
|    Memcheck:Cond
 | |
|    fun:fips_get_entropy
 | |
|    fun:FIPS_drbg_instantiate
 | |
|    fun:RAND_init_fips
 | |
|    fun:OPENSSL_init_library
 | |
|    fun:SSL_library_init
 | |
|    fun:init_hashlib
 | |
| }
 | |
| 
 | |
| {
 | |
|    openssl 1.0.1 prng 3
 | |
|    Memcheck:Value8
 | |
|    fun:_x86_64_AES_encrypt_compact
 | |
|    fun:AES_encrypt
 | |
| }
 | |
| 
 | |
| #
 | |
| # All of these problems come from using test_socket_ssl
 | |
| #
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Cond
 | |
|    fun:BN_bin2bn
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Cond
 | |
|    fun:BN_num_bits_word
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Value4
 | |
|    fun:BN_num_bits_word
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Cond
 | |
|    fun:BN_mod_exp_mont_word
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Cond
 | |
|    fun:BN_mod_exp_mont
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Param
 | |
|    write(buf)
 | |
|    fun:write
 | |
|    obj:/usr/lib/libcrypto.so.0.9.7
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Cond
 | |
|    fun:RSA_verify
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Value4
 | |
|    fun:RSA_verify
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Value4
 | |
|    fun:DES_set_key_unchecked
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Value4
 | |
|    fun:DES_encrypt2
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Cond
 | |
|    obj:/usr/lib/libssl.so.0.9.7
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Value4
 | |
|    obj:/usr/lib/libssl.so.0.9.7
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Cond
 | |
|    fun:BUF_MEM_grow_clean
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Cond
 | |
|    fun:memcpy
 | |
|    fun:ssl3_read_bytes
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Cond
 | |
|    fun:SHA1_Update
 | |
| }
 | |
| 
 | |
| {
 | |
|    from test_socket_ssl
 | |
|    Memcheck:Value4
 | |
|    fun:SHA1_Update
 | |
| }
 | |
| 
 | |
| {
 | |
|    test_buffer_non_debug
 | |
|    Memcheck:Addr4
 | |
|    fun:PyUnicodeUCS2_FSConverter
 | |
| }
 | |
| 
 | |
| {
 | |
|    test_buffer_non_debug
 | |
|    Memcheck:Addr4
 | |
|    fun:PyUnicode_FSConverter
 | |
| }
 | |
| 
 | |
| # Additional suppressions for the unified decimal tests:
 | |
| {
 | |
|    test_decimal
 | |
|    Memcheck:Addr4
 | |
|    fun:PyUnicodeUCS2_FSConverter
 | |
| }
 | |
| 
 | |
| {
 | |
|    test_decimal2
 | |
|    Memcheck:Addr4
 | |
|    fun:PyUnicode_FSConverter
 | |
| }
 | |
| 
 |