Re: Why is create function bringing down the Backend server?

From: Marko Kreen <markokr(at)gmail(dot)com>
To: Carlos Moreno <moreno_pg(at)mochima(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Why is create function bringing down the Backend server?
Date: 2005-12-23 10:05:54
Message-ID: e51f66da0512230205geccc0d7l3ddc2a2eb08b78c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 12/23/05, Carlos Moreno <moreno_pg(at)mochima(dot)com> wrote:
> Marko Kreen wrote:
>
> >On 12/22/05, Carlos Moreno <moreno_pg(at)mochima(dot)com> wrote:
> >
> >>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).
> >>
> >
> >You should see if there's something in server log.
> >
>
> The only thing that does show does not seem to say much:
>
> LOG: server process (PID 12885) was terminated by signal 11
> LOG: terminating any other active server processes
> LOG: all server processes terminated; reinitializing
>
> Not sure what the meaning of signal 11 is with PG (AFAIR, it's
> one of the SIGUSER values, right?)

Well, that does not help. Signal 11 is SIGSEGV.

> >And then indeed, try to gdb it. You can run Postgres in non-daemon
> >mode with command 'postgres -D datadir database'.
> >
> >The stripped pgcrypto.c you posted - your wrapper function looks fine,
> >only problem I see is that you deleted function find_provider that is used
> >by pg_digest, so there will be undefined function in final .so.
> >
>
> Oh no!! That was only in the function I posted, so that the file
> is kept as short as possible -- in the one that I compiled, I left
> everything untouched, and only added my functions.

Ah, that's not it. Then I'm clueless.

> >But that should not crash the server, so gdb trace could be still useful.
> >
> >
> Ok, will try to do it and post any interesting discoveries (I
> can't find any core files, so I guess I'll have to try gdbing it)

Core files should be in data directory somewhere.
(If postmaster ulimit allows them.)

> >>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).
> >>
> >
> >For SHA2 hashes it should be enough to compile pgcrypto
> >against OpenSSL 0.9.8. Or upgrade to PostgreSQL 8.1,
> >where they are included.
> >
> >Ofcourse, that is no fun.
> >
>
> Hahahaha -- why do I keep being naive and making the same mistake
> over and over!!! :-)
>
> As much as it is indeed no fun, it is also good to know (and I
> didn't know that OpenSSL 0.9.8 had them either, so thanks for
> the double pointer!)

Hehe. If hacking on a project, it is usually good to check out
the latest version. pgcrypto had a major update in 8.1.

> >If you want to hack, you could try adding SHA224 to the SHA2
> >implementation in 8.1.
> >
>
> Sounds like a plan :-)

Cool! Look how SHA384 fits in and try to follow that. That way
the code is in coherent style.

--
marko

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Ragnar 2005-12-23 12:40:24 Re: Stored procedure
Previous Message Ludek Finstrle 2005-12-23 10:05:17 Re: ODBC connection string, MS Access