Why is create function bringing down the Backend server?

From: Carlos Moreno <moreno_pg(at)mochima(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Why is create function bringing down the Backend server?
Date: 2005-12-22 16:52:47
Message-ID: 43AAD9DF.5080008@mochima.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


I'm trying to add additional functionality to the contrib/pgcrypto
branch (at least for my own use, although ideally, I'd like to
make whatever additions good enough as to be accepted as part of
the PG distribution)

Anyway, I wanted to add hash functions (SHA-1 is already there,
so I'd like to add SHA-256 and SHA-512 at the very least, and
maybe also, for completeness, SHA-224 and SHA-384).

Anyway, I started with an implementation of SHA-1 that I already
have (since it is easy to test/debug, as I only have to compare it
with the already-existing sha1 function in pgcrypto).

I got it to work nicely, and I tried several millions randomly-
generated strings, and the result of my hash function matches
the result of pgcrypto's sha1 function.

The problem is, when I execute the SQL statement:

create or replace function sha1 .... ;

for the second time (i.e., after making modifications and
recompiling), the *backend* crashes -- it then restarts
automatically, and then I run again the create or replace
statement, and it works now (and the function seems to
work fine -- well, in its "final" version it does).

I know the list of possible causes may be nearly infinite, so
I put the modified file (I removed most of the other stuff from
the original pgcrypto.c file, and left the pg_digest function,
which is the one that computes hashes, and the one that I
used as a model to create mine):

http://www.mochima.com/tmp/pgcrypto.c

I also modified the SQL script file to include my function;
this (when I execute this script) is precisely the moment at
which the PG backend crashes (well, it shuts down anyway):

http://www.mochima.com/tmp/pgcrypto.sql

Any ideas of what I'm doing wrong?

BTW, I compiled with the provided Makefile, then copy the .so
files to /usr/local/pgsql/lib directory, and ran /sbin/ldconfig
(that directory is included in my /etc/ld.so.conf file). I'm
running PG 7.4.9 on a Linux FC4 on a Dual-Core Athlon64 (kernel
x86_64-smp).

Thanks for any comments/feedback! (please by kind, as this is
my first attempt ever at creating PG functions -- but please
be tough! Don't hold back valuable feedback just because you
don't want to hurt my baby feelings! :-))

Carlos
--

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ted Byers 2005-12-22 17:19:10 Stored procedure
Previous Message Tom Lane 2005-12-22 16:47:13 Re: [GENERAL] Running with fsync=off