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

overwriting an existing .so while being used crashes the server process

From: Tomas Vondra <tv(at)fuzzy(dot)cz>
To: pgsql-bugs(at)postgresql(dot)org
Subject: overwriting an existing .so while being used crashes the server process
Date: 2012-05-30 20:29:48
Message-ID: 4FC6833C.6080501@fuzzy.cz (view raw or flat)
Thread:
Lists: pgsql-bugs
Hi,

whenever I run a C-function (part of an .so file) and the file is
overwritten, the connection crashes. Tested on 9.1.3 and 9.2-beta1.

It's 100% reproducible:

 1) compile the attached file and copy the .so to pkglibdir

    $ gcc -I/home/tomas/tmp/postgresql-9.1.2/src/include testcomp.c
          -shared -fPIC -o testcomp.so

    $ cp testcomp.so `pg_config --pkglibdir`

 2) create a function, calling the .so

    CREATE FUNCTION test_computation()
           RETURNS void
           AS 'testcomp','test_computation'
           LANGUAGE C STRICT;

 3) call the function and while it's running, repeat step (1).

 4) an example of the output

    WARNING:  i = 532000000 v = 141512000266000000
    WARNING:  i = 533000000 v = 142044500266500000
    WARNING:  i = 534000000 v = 142578000267000000
    The connection to the server was lost. Attempting reset: Failed.

    and a log says this

    LOG:  server process (PID 17161) was terminated by signal 7: Bus
          error
    LOG:  terminating any other active server processes
    WARNING:  terminating connection because of crash of another server
              process
    ...

This does not happen when the .so is removed or just touched, it needs
to be overwritten (although with a file that's binary exactly the same).

Basic info about the box: Linux rimmer 3.3.2-gentoo #1 SMP PREEMPT Wed
Apr 18 14:54:04 CEST 2012 x86_64 Intel(R) Core(TM) i5-2500K CPU @
3.30GHz GenuineIntel GNU/Linux

kind regards
Tomas

Attachment: testcomp.c
Description: text/x-c (976 bytes)

Responses

pgsql-bugs by date

Next:From: Tom LaneDate: 2012-05-30 20:35:55
Subject: Re: overwriting an existing .so while being used crashes the server process
Previous:From: Tomas VondraDate: 2012-05-30 13:01:24
Subject: Re: BUG #6667: diplom on english language on your site

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