Thread: BUG #5736: 9.0.1 segmentation fault (sig11) during long-lived update

BUG #5736: 9.0.1 segmentation fault (sig11) during long-lived update

From
"Henry"
Date:
The following bug has been logged online:

Bug reference:      5736
Logged by:          Henry
Email address:      henka@cityweb.co.za
PostgreSQL version: 9.0.1
Operating system:   Linux
Description:        9.0.1 segmentation fault (sig11) during long-lived
update
Details:

Hi,

I'm using PostgreSQL 9.0.1 on centos 5.4.

I'm running the following update (which takes a few days to run before I get
the error - twice now):

update tab1 set col1 = hashtext(col0) where col1 isnull;

I'm running this update as part of an exercise to purge duplicates, before
creating a UNIQUE index.

Error from PG:

server process (PID 19328) was terminated by signal 11: Segmentation fault
terminating any other active server processes
...

Before I run this again, what's the best way to proceed to get a core dump
so I can run a gdb backtrace to provide more info?  Simply 'ulimit -c
5242880' as user postgres and restart PG?

Thanks

Re: BUG #5736: 9.0.1 segmentation fault (sig11) during long-lived update

From
Tom Lane
Date:
"Henry" <henka@cityweb.co.za> writes:
> Before I run this again, what's the best way to proceed to get a core dump
> so I can run a gdb backtrace to provide more info?  Simply 'ulimit -c
> 5242880' as user postgres and restart PG?

I'd use "ulimit -c unlimited", myself, rather than making arbitrary
assumptions about how big the corefile might be.

Also, make sure the ulimit command is effective in the shell that will
actually launch the postmaster.  This can be tricky if your PG launch
script uses "su".  If you're using the RH or PGDG RPMs' initscript,
I'd suggest putting the ulimit command in ~postgres/.bash_profile.

            regards, tom lane

Re: BUG #5736: 9.0.1 segmentation fault (sig11) during long-lived update

From
Dimitri Fontaine
Date:
Tom Lane <tgl@sss.pgh.pa.us> writes:
> Also, make sure the ulimit command is effective in the shell that will
> actually launch the postmaster.  This can be tricky if your PG launch
> script uses "su".  If you're using the RH or PGDG RPMs' initscript,
> I'd suggest putting the ulimit command in ~postgres/.bash_profile.

Under debian or ubuntu you can add the -c switch to pg_ctl options so
that IIRC it will change the ulimit settings for you. An example on a
8.4 install:

$ cat /etc/postgresql/8.4/main/pg_ctl.conf
# Automatic pg_ctl configuration
# This configuration file contains cluster specific options to be passed to
# pg_ctl(1).

pg_ctl_options = ''

Also see the /etc/postgresql/X.Y/cluster/environment file. For archives
sake and people following without a debian based installation handy:

$ cat /etc/postgresql/8.4/main/environment
# environment variables for postmaster process
# This file has the same syntax as postgresql.conf:
#  VARIABLE = simple_value
#  VARIABLE2 = 'any value!'
# I. e. you need to enclose any value which does not only consist of letters,
# numbers, and '-', '_', '.' in single quotes. Shell commands are not
# evaluated.

Regards,
--
Dimitri Fontaine
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support

Re: BUG #5736: 9.0.1 segmentation fault (sig11) during long-lived update

From
"Henry C."
Date:
I think we can close this bug report.  It would seem that at roughly the same
time as the problem, the RAID store had a hiccup.

The update is still running without error, so it looks like the RAID problem
was probably the cause.  If the situation changes, I'll rebport back.

Apologies for the possibly incorrect report.

Regards
Henry