Segmentation fault on updating a BYTEA field [psycopg2]
George Sakkis
george.sakkis at gmail.com
Fri May 23 14:00:42 EDT 2008
On May 21, 6:32 pm, George Sakkis <george.sak... at gmail.com> wrote:
> I have a simple DB table that stores md5 signature pairs:
>
> Table "public.duplicate"
> Column | Type | Modifiers
> ----------+-------+-----------
> sig | bytea | not null
> orig_sig | bytea | not null
> Indexes:
> "duplicate_pkey" PRIMARY KEY, btree (sig)
> "ix_duplicate_orig_sig" btree (orig_sig)
>
> I use SqlAlchemy to interact with it and inserting works fine; update
> however crashes hard with a segfault. Sure enough, the crash is
> reproducible when using the underlying psycopg2 directly:
>
> >>> import psycopg2
> >>> connect_string = ...
> >>> conn = psycopg2.connect(connect_string)
> >>> cur = conn.cursor()
> >>> cur.execute('SELECT sig,orig_sig from duplicate limit 1')
> >>> d = cur.fetchone()
> >>> d
>
> (<read-only buffer for 0x40209100, size 16, offset 0 at 0x403054e0>,
> <read-only buffer for 0x402090f0, size 16, offset 0 at 0x40305580>)>>> map(str,d)
>
> ["\x02#qO\xb0\xcc\xfcx\xb9u\xa5\x83)\xc4'@", '\xa1\xf22\xf6y\xd0\xbc
> \xea6\xf0Y\xf1"\xc9(\n']>>> cur.execute('UPDATE duplicate SET orig_sig=%(orig_sig)s WHERE duplicate.sig = %(duplicate_sig)s',
>
> ... dict(orig_sig=d[0], duplicate_sig=d[1]))
> Segmentation fault
>
> Am I (and SqlAlchemy) doing something silly or is this a bug in
> psycopg2 ?
>
> George
I installed the latest release (psycopg2-2.0.7) and it seems the
problem is gone. Sorry for the noise.
George
More information about the Python-list
mailing list