From: | "Lawrence Oluyede" <l(dot)oluyede(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Possible bug in PostgreSQL 8.3beta4 (postgres process segfaults) |
Date: | 2007-12-12 09:05:47 |
Message-ID: | 9eebf5740712120105t7cf991acq132efdf719ba09da@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
While developing a Python program I encountered a situation that makes
on of the PostgreSQL 8.3b4's processes crash badly with a segfault.
Let me explain.
After enabling "debug5" as log level I was able to locate and
reproduce the exact sequence of SQL queries made against my test
database
and crash postgres again using only "psql". See for yourself:
foodb=# \o out.txt
foodb=# SELECT * FROM foobaz.instrument WHERE code = 'TEST0118';
LOG: duration: 3.683 ms statement: SELECT * FROM foobaz.instrument
WHERE code = 'TEST0118';
foodb=# SELECT xpath('//sp:description/text()', content,
ARRAY[ARRAY['sp', 'http://www.foobaz.com/']])
foodb-# FROM foobaz.instrument WHERE code = 'TEST0018';
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
The pgsql log file contains these error logs (the pid 753 is a
postgres child process):
"""""""""
[loluyede:foodb:2007-12-11 14:38:20.992 CET]LOG: 00000: duration:
0.090 ms statement: BEGIN; SET TRANSACTION ISOLATION LEVEL READ
COMMITTED
[loluyede:foodb:2007-12-11 14:38:20.992 CET]LOCATION:
exec_simple_query, postgres.c:1040
[::2007-12-11 14:38:20.993 CET]LOG: 00000: server process (PID 753)
was terminated by signal 11: Segmentation fault
[::2007-12-11 14:38:20.993 CET]LOCATION: LogChildExit, postmaster.c:2510
[::2007-12-11 14:38:20.993 CET]LOG: 00000: terminating any other
active server processes
[::2007-12-11 14:38:20.993 CET]LOCATION: HandleChildCrash, postmaster.c:2355
[::2007-12-11 14:38:20.997 CET]LOG: 00000: all server processes
terminated; reinitializing
[::2007-12-11 14:38:20.997 CET]LOCATION: PostmasterStateMachine,
postmaster.c:2663
[::2007-12-11 14:38:21.000 CET]LOG: 00000: database system was
interrupted; last known up at 2007-12-11 14:38:02 CET
[::2007-12-11 14:38:21.000 CET]LOCATION: StartupXLOG, xlog.c:4789
[::2007-12-11 14:38:21.000 CET]DEBUG: 00000: checkpoint record is at 0/2AB634A0
""""""""
The out.txt file contains the output of the "SELECT *" statement
code | kind | last_modified |
created | modified_by | created_by |
content
----------+------------+-------------------------------+------------------------------+-------------+------------+----------------------------------------------------------------------
TEST0118 | bazfoo | 2007-12-12 08:17:01.846919+01 | 2007-12-12
08:17:00.32337+01 | anonymous | anonymous | <xml ... >
(1 row)
The "instrument" table has the following schema:
"""
CREATE TABLE foobaz.instrument
(
-- Inherited: code character varying(32) NOT NULL,
-- Inherited: kind character varying(32) NOT NULL DEFAULT
'bazfoo'::character varying,
last_modified timestamp with time zone NOT NULL,
created timestamp with time zone NOT NULL DEFAULT
('now'::text)::timestamp(3) with time zone,
modified_by character varying(64),
created_by character varying(64) NOT NULL DEFAULT
'anonymous'::character varying,
content xml NOT NULL,
CONSTRAINT instrument_pkey PRIMARY KEY (code),
CONSTRAINT instrument_kind_check CHECK (kind::text = 'bazfoo'::text)
)
INHERITS (foobaz.instrument_base)
WITH (OIDS=FALSE);
"""
Its "parent" table is instrument_base and has the following schema:
"""
CREATE TABLE foobaz.instrument_base
(
code character varying(32) NOT NULL,
kind character varying(32) NOT NULL,
CONSTRAINT instrument_base_pkey PRIMARY KEY (code)
)
WITH (OIDS=FALSE);
"""
PostgreSQL is again 8.3beta 4 on Ubuntu Linux 7.10.
It's compiled with the following flags:
./configure --with-python --with-openssl --with-pam --with-libxml
--with-libxslt --enable-thread-safety --enable-debug
libxml is 2.6.30, libxslt is 1.1.21
I think that is all.
Is it a bug or am I doing something wrong?
--
Lawrence, oluyede.org - neropercaso.it
"It is difficult to get a man to understand
something when his salary depends on not
understanding it" - Upton Sinclair
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2007-12-12 09:15:45 | Re: Possible bug in PostgreSQL 8.3beta4 (postgres process segfaults) |
Previous Message | Florian Aumeier | 2007-12-12 09:01:19 | Re: thesaurus support in postgresql |