mirror of
https://github.com/psycopg/psycopg2.git
synced 2025-01-31 01:14:09 +03:00
Added sandbox stuff to the repository.
This commit is contained in:
parent
ad76b5ba3c
commit
8ffafd75eb
36
sandbox/async.py
Normal file
36
sandbox/async.py
Normal file
|
@ -0,0 +1,36 @@
|
|||
import datetime
|
||||
import time
|
||||
import psycopg2
|
||||
|
||||
#d = datetime.timedelta(12, 100, 9876)
|
||||
#print d.days, d.seconds, d.microseconds
|
||||
#print psycopg.adapt(d).getquoted()
|
||||
|
||||
conn = psycopg2.connect("dbname=test_unicode")
|
||||
conn.set_client_encoding("xxx")
|
||||
curs = conn.cursor()
|
||||
#curs.execute("SELECT 1.0 AS foo")
|
||||
#print curs.fetchmany(2)
|
||||
#print curs.fetchall()
|
||||
|
||||
def sleep(curs):
|
||||
while not curs.isready():
|
||||
print "."
|
||||
time.sleep(.1)
|
||||
|
||||
#curs.execute("""
|
||||
# DECLARE zz INSENSITIVE SCROLL CURSOR WITH HOLD FOR
|
||||
# SELECT now();
|
||||
# FOR READ ONLY;""", async = 1)
|
||||
curs.execute("SELECT now() AS foo", async=1);
|
||||
sleep(curs)
|
||||
print curs.fetchall()
|
||||
|
||||
#curs.execute("""
|
||||
# FETCH FORWARD 1 FROM zz;""", async = 1)
|
||||
curs.execute("SELECT now() AS bar", async=1);
|
||||
print curs.fetchall()
|
||||
|
||||
curs.execute("SELECT now() AS bar");
|
||||
sleep(curs)
|
||||
|
25
sandbox/crash.py
Normal file
25
sandbox/crash.py
Normal file
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
#import psycopg as db
|
||||
import psycopg2 as db
|
||||
import threading
|
||||
import time
|
||||
import sys
|
||||
|
||||
def query_worker(dsn):
|
||||
conn = db.connect(dsn)
|
||||
cursor = conn.cursor()
|
||||
while True:
|
||||
cursor.execute("select * from pg_class")
|
||||
while True:
|
||||
row = cursor.fetchone()
|
||||
if row is None:
|
||||
break
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
print 'usage: %s DSN' % sys.argv[0]
|
||||
sys.exit(1)
|
||||
th = threading.Thread(target=query_worker, args=(sys.argv[1],))
|
||||
th.setDaemon(True)
|
||||
th.start()
|
||||
time.sleep(1)
|
7
sandbox/typecrash.py
Normal file
7
sandbox/typecrash.py
Normal file
|
@ -0,0 +1,7 @@
|
|||
import psycopg2.extensions
|
||||
|
||||
print dir(psycopg2._psycopg)
|
||||
print psycopg2.extensions.new_type(
|
||||
(600,), "POINT", lambda oids, name, fun: None)
|
||||
print "ciccia ciccia"
|
||||
print psycopg2._psycopg
|
486
sandbox/valgrind-python.supp
Normal file
486
sandbox/valgrind-python.supp
Normal file
|
@ -0,0 +1,486 @@
|
|||
#
|
||||
# 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 -tt ./Lib/test/regrtest.py -u bsddb,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)
|
||||
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
|
||||
}
|
||||
|
||||
{
|
||||
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/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/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.
|
||||
###
|
||||
{
|
||||
GDBM problems, see test_gdbm
|
||||
Memcheck:Param
|
||||
write(buf)
|
||||
fun:write
|
||||
fun:gdbm_open
|
||||
|
||||
}
|
||||
|
||||
{
|
||||
Avoid problem in libc on gentoo
|
||||
Memcheck:Cond
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
}
|
||||
|
||||
{
|
||||
Avoid problem in glibc on gentoo
|
||||
Memcheck:Addr8
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_open
|
||||
obj:/lib/libdl-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/libdl-2.3.5.so
|
||||
fun:dlopen
|
||||
}
|
||||
|
||||
{
|
||||
Avoid problem in glibc on gentoo
|
||||
Memcheck:Addr8
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_open
|
||||
obj:/lib/libdl-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/libdl-2.3.5.so
|
||||
fun:dlopen
|
||||
}
|
||||
|
||||
{
|
||||
Avoid problem in glibc on gentoo
|
||||
Memcheck:Cond
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_open
|
||||
obj:/lib/libdl-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/libdl-2.3.5.so
|
||||
fun:dlopen
|
||||
}
|
||||
|
||||
{
|
||||
Avoid problem in glibc on gentoo
|
||||
Memcheck:Cond
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_open
|
||||
obj:/lib/libdl-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/libdl-2.3.5.so
|
||||
fun:dlopen
|
||||
}
|
||||
|
||||
{
|
||||
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
|
||||
fun:setup_readline
|
||||
fun:initreadline
|
||||
fun:_PyImport_LoadDynamicModule
|
||||
fun:load_module
|
||||
fun:import_submodule
|
||||
fun:load_next
|
||||
fun:import_module_ex
|
||||
fun:PyImport_ImportModuleEx
|
||||
}
|
||||
|
||||
{
|
||||
Mysterious leak that seems to deal w/pthreads
|
||||
Memcheck:Leak
|
||||
fun:calloc
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_allocate_tls
|
||||
fun:__pthread_initialize_minimal
|
||||
}
|
||||
|
||||
{
|
||||
Mysterious leak that seems to deal w/pthreads
|
||||
Memcheck:Leak
|
||||
fun:memalign
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_allocate_tls
|
||||
fun:__pthread_initialize_minimal
|
||||
}
|
||||
|
||||
###
|
||||
### 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
|
||||
###}
|
||||
|
||||
#
|
||||
# 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
|
||||
}
|
||||
|
||||
|
||||
|
||||
{
|
||||
Debian unstable with libc-i686 suppressions
|
||||
Memcheck:Cond
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_open
|
||||
obj:/lib/tls/i686/cmov/libdl-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libdl-2.3.5.so
|
||||
fun:dlopen
|
||||
fun:_PyImport_GetDynLoadFunc
|
||||
fun:_PyImport_LoadDynamicModule
|
||||
}
|
||||
|
||||
{
|
||||
Debian unstable with libc-i686 suppressions
|
||||
Memcheck:Cond
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_open
|
||||
obj:/lib/tls/i686/cmov/libdl-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libdl-2.3.5.so
|
||||
fun:dlopen
|
||||
fun:_PyImport_GetDynLoadFunc
|
||||
fun:_PyImport_LoadDynamicModule
|
||||
}
|
||||
|
||||
{
|
||||
Debian unstable with libc-i686 suppressions
|
||||
Memcheck:Addr4
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_open
|
||||
obj:/lib/tls/i686/cmov/libdl-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libdl-2.3.5.so
|
||||
fun:dlopen
|
||||
fun:_PyImport_GetDynLoadFunc
|
||||
fun:_PyImport_LoadDynamicModule
|
||||
}
|
||||
|
||||
{
|
||||
Debian unstable with libc-i686 suppressions
|
||||
Memcheck:Addr4
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_open
|
||||
obj:/lib/tls/i686/cmov/libdl-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libdl-2.3.5.so
|
||||
}
|
||||
|
||||
{
|
||||
Debian unstable with libc-i686 suppressions
|
||||
Memcheck:Cond
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_open
|
||||
obj:/lib/tls/i686/cmov/libdl-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libdl-2.3.5.so
|
||||
fun:dlopen
|
||||
fun:_PyImport_GetDynLoadFunc
|
||||
fun:_PyImport_LoadDynamicModule
|
||||
obj:/usr/bin/python2.3
|
||||
obj:/usr/bin/python2.3
|
||||
}
|
||||
|
||||
{
|
||||
Debian unstable with libc-i686 suppressions
|
||||
Memcheck:Cond
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_open
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:__libc_dlopen_mode
|
||||
fun:__nss_lookup_function
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
fun:__nss_passwd_lookup
|
||||
fun:getpwuid_r
|
||||
fun:pqGetpwuid
|
||||
}
|
||||
|
||||
{
|
||||
Debian unstable with libc-i686 suppressions
|
||||
Memcheck:Cond
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_open
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:__libc_dlopen_mode
|
||||
fun:__nss_lookup_function
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
fun:__nss_passwd_lookup
|
||||
}
|
||||
|
||||
{
|
||||
Debian unstable with libc-i686 suppressions
|
||||
Memcheck:Addr4
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_open
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:__libc_dlopen_mode
|
||||
fun:__nss_lookup_function
|
||||
obj:/lib/tls/i686/cmov/libnss_compat-2.3.5.so
|
||||
fun:_nss_compat_getpwuid_r
|
||||
}
|
||||
|
||||
{
|
||||
Debian unstable with libc-i686 suppressions
|
||||
Memcheck:Cond
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libc-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
fun:_dl_open
|
||||
obj:/lib/tls/i686/cmov/libdl-2.3.5.so
|
||||
obj:/lib/ld-2.3.5.so
|
||||
obj:/lib/tls/i686/cmov/libdl-2.3.5.so
|
||||
fun:dlopen
|
||||
fun:_PyImport_GetDynLoadFunc
|
||||
fun:_PyImport_LoadDynamicModule
|
||||
obj:/usr/bin/python2.4
|
||||
obj:/usr/bin/python2.4
|
||||
}
|
Loading…
Reference in New Issue
Block a user