Problem with backend crashing

From: Anto Prijosoesilo <anto(at)inet(dot)co(dot)th>
To: pgsql-general(at)postgresql(dot)org
Subject: Problem with backend crashing
Date: 1999-03-16 10:46:36
Message-ID: 36EE368C.F7AEC035@inet.co.th
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

I have 2 unrelated problems:

I'm running PostgreSQL 6.4.2 on FreeBSD 2.2.8-STABLE and I'm having some
problem with my database.
I'm using PostgreSQL for keeping RADIUS logs. At this time I have about
50000 records in the table.
When I try to update some records in the table I get the following
message from psql:

pqReadData() -- backend closed the channel unexpectedly.
This probably means the backend terminated abnormally before or
while processing the request.
We have lost the connection to the backend, so further processing is
impossible. Terminating.

Here's the schema of the table:

Table = session
+----------------------------------+----------------------------------+-------+
| Field | Type |
Length|
+----------------------------------+----------------------------------+-------+
| id | int4 not null default nextval (
| 4 |
| seq | int4 not null default 1
| 4 |
| last | bool not null default 'f'
| 1 |
| nas | text not null
| var |
| sessionid | text not null
| var |
| description | text
| var |
| account | text not null
| var |
| ticket | text not null
| var |
| rate | float8
| 8 |
| value | money
| 4 |
| start | datetime not null default dateti
| 8 |
| stop | datetime
| 8 |
| reserved | datetime
| 8 |
| approved | datetime
| 8 |
| cancelled | datetime
| 8 |
| clientip | text
| var |
+----------------------------------+----------------------------------+-------+
Indices: i_snsa
session_account
session_pkey
session_ticket

Table = i_snsa
+----------------------------------+----------------------------------+-------+
| Field | Type |
Length|
+----------------------------------+----------------------------------+-------+
| seq | int4
| 4 |
| nas | text
| var |
| sessionid | text
| var |
| account | text
| var |
+----------------------------------+----------------------------------+-------+

Table = session_account
+----------------------------------+----------------------------------+-------+
| Field | Type |
Length|
+----------------------------------+----------------------------------+-------+
| account | text
| var |
+----------------------------------+----------------------------------+-------+

Table = session_pkey
+----------------------------------+----------------------------------+-------+
| Field | Type |
Length|
+----------------------------------+----------------------------------+-------+
| id | int4
| 4 |
| seq | int4
| 4 |
+----------------------------------+----------------------------------+-------+

Table = session_ticket
+----------------------------------+----------------------------------+-------+
| Field | Type |
Length|
+----------------------------------+----------------------------------+-------+
| ticket | text
| var |
+----------------------------------+----------------------------------+-------+

Session.ID defaults to nextval('ssessionid') and here it is:

Table = ssessionid
+----------------------------------+----------------------------------+-------+
| Field | Type |
Length|
+----------------------------------+----------------------------------+-------+
| sequence_name | name
| 32 |
| last_value | int4
| 4 |
| increment_by | int4
| 4 |
| max_value | int4
| 4 |
| min_value | int4
| 4 |
| cache_value | int4
| 4 |
| is_cycled | char
| 1 |
| is_called | char
| 1 |
+----------------------------------+----------------------------------+-------+

Session.Start defaults to datetime(now());

The problem only occurs on some records. In this particular instance,
Value, Reserved, Approved, and Cancelled attributes are NULL;

I tried to SELECT the affected records to another table and then deleted
the records and it failed again when I tried to insert the corrected
records back.

/var/log/messages indicated that postgres process died with signal 11
(SIGSEGV).

Any pointers?...

The second problem was on Postgresql 6.3.x on FreeBSD 2.28-STABLE.

I have the following tables:

Table = rate
+----------------------------------+----------------------------------+-------+
| Field | Type |
Length|
+----------------------------------+----------------------------------+-------+
| id | int4 not null default nextval (
| 4 |
| description | text not null
| var |
| priority | int4 not null default 0
| 4 |
| rate | float8 not null
| 8 |
+----------------------------------+----------------------------------+-------+
Index: rate_pkey

Table = rate_pkey
+----------------------------------+----------------------------------+-------+
| Field | Type |
Length|
+----------------------------------+----------------------------------+-------+
| id | int4
| 4 |
+----------------------------------+----------------------------------+-------+

Table = rateentry
+----------------------------------+----------------------------------+-------+
| Field | Type |
Length|
+----------------------------------+----------------------------------+-------+
| id | int4 not null
| 4 |
| start | datetime not null
| 8 |
| stop | datetime not null
| 8 |
+----------------------------------+----------------------------------+-------+
Index: rateentry_pkey

Table = rateentry_pkey
+----------------------------------+----------------------------------+-------+
| Field | Type |
Length|
+----------------------------------+----------------------------------+-------+
| id | int4
| 4 |
| start | datetime
| 8 |
| stop | datetime
| 8 |
+----------------------------------+----------------------------------+-------+

This query returns:

access=> select r.id,r.priority,r.rate,e.start,e.stop from rate r,
rateentry e where '1999/3/15 22:00' between e.start and e.stop order by
r.priority desc;
id|priority|rate|start |stop
--+--------+----+----------------------+----------------------
2| 1| 30|1999-03-15 22:00:00+07|1999-03-16 07:00:00+07
2| 1| 30|-infinity |infinity
1| 0| 60|1999-03-15 22:00:00+07|1999-03-16 07:00:00+07
1| 0| 60|-infinity |infinity
(4 rows)

Another one returns:

access=> select r.id,r.priority,r.rate,e.start,e.stop from rate r,
rateentry e where '1999/3/15 22:00' between e.start and e.stop and
r.id=e.id order by r.priority desc;
id|priority|rate|start |stop
--+--------+----+---------+--------
1| 0| 60|-infinity|infinity
(1 row)

The last query should return 2 rows, right?

What's weird is that the last query was working OK until beginning of
March when it began to fail.
Has anyone seen this before and is this problem fixed in 6.4.x?

Thanks,
Anto.

Browse pgsql-general by date

  From Date Subject
Next Message Jay W. Summet 1999-03-16 11:21:22 Restoreing from a Unix TAR backup of data directory...
Previous Message Silvio Emanuel Barbosa de Macedo 1999-03-16 08:57:08 re: how to start postmaster at system boot on linux?