Skip site navigation (1) Skip section navigation (2)

BUG #1259: garbage in pg_listener after backend crash

From: "PostgreSQL Bugs List" <pgsql-bugs(at)postgresql(dot)org>
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #1259: garbage in pg_listener after backend crash
Date: 2004-09-19 15:39:31
Message-ID: 20040919153931.438745A107A@www.postgresql.com (view raw or flat)
Thread:
Lists: pgsql-bugs
The following bug has been logged online:

Bug reference:      1259
Logged by:          Vadim Passynkov

Email address:      Vadim(dot)Passynkov(at)pathcom(dot)com

PostgreSQL version: 7.4.5

Operating system:   FreeBSD 4.10-STABLE

Description:        garbage in pg_listener after backend crash

Details: 

If current backend crash after registers on the notification condition 
<name> ( 'LISTEN <name>' SQL command ) row in the pg_listener still exists; 

======================================================
template1=# SELECT pg_backend_pid ();
 pg_backend_pid
----------------
           6312
(1 row)

template1=# LISTEN test;
LISTEN

template1=# SELECT * from pg_listener where listenerpid = 6312;
 relname | listenerpid | notification
---------+-------------+--------------
 test    |        6312 |            0
(1 row)

template1=# SELECT crash_backend ( );
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.

!> \c template1 pgsql
You are now connected to database "template1" as user "pgsql".
template1=# SELECT * from pg_listener where listenerpid = 6312;
 relname | listenerpid | notification
---------+-------------+--------------
 test    |        6312 |            0
(1 row)

======================================================

/* crash_backend.c */
#include "postgres.h"
#include "executor/spi.h"

PG_FUNCTION_INFO_V1 ( crash_backend );
Datum crash_backend ( PG_FUNCTION_ARGS ) {
  char *ptr = NULL;

  *ptr = '1';
  PG_RETURN_INT32 ( 1 );
}

======================================================

cc -Wall -fpic -I/usr/local/include/postgresql/server -I/usr/local/include  
-c crash_backend.c -o crash_backend.o 
cc -shared -o crash_backend.so crash_backend.o

======================================================

CREATE OR REPLACE FUNCTION crash_backend ( ) RETURNS integer AS 
'/usr/home/pvi/pg_bug/crash_backend.so', 'crash_backend' LANGUAGE 'C'; 

======================================================

-- 
Vadim Passynkov


Responses

pgsql-bugs by date

Next:From: Tom LaneDate: 2004-09-19 16:34:37
Subject: Re: BUG #1259: garbage in pg_listener after backend crash
Previous:From: Peter EisentrautDate: 2004-09-18 14:07:20
Subject: Re: BUG #1257: add support for 1-byte integer and 4-bit integer

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group