Thread: Re: Bugs in Postgres

Re: Bugs in Postgres

From
Thomas Lockhart
Date:
Thanks for the information Thorsten. 

I'm forwarding this message to the "hackers" list for further comment.
afaik, the IPC issue on Solaris is a FAQ, and the fix requires
configuring IPC in the Sun kernel with sufficient size, or starting
Postgres with smaller buffers (see the docs on starting the
postmaster).

The plpgsql function problem sounds like an issue with an index on a
system table, and may have been fixed for the upcoming release, but I
don't recall anything specifically. Perhaps others will recall more
detail.

Regards.
                   - Thomas

> I encountered some problems during the use of of Postgres 6.5.3.
> I'm a student in Germany and I'm currently working on a project
> together with two other students. In our project we use Postgres
> as a database server.
> 
> During our work we encountered two problems:
> 
>  - We removed an existing plpgsql-function from our database.
>    After trying to re-create it, the postmaster printed a message
>    like: "btree: unable to add item to the page". The only solution
>    was to delete the entire database and to recreate it.
> 
>  - Postgres 6.5.3 has problems on sparc-sun-solaris2.7 systems.
>    Compilation is successful and databases can be initialized, but
>    starting the postmaster produces the following error message:
> 
>    IpcMemoryCreate: shmget failed (Invalid argument) key=7107001,
> size=1073152,
>    permission=600
>    FATAL 1:  ShmemCreate: cannot create region
> 
>    This message does not occur under Linux.
> 
> Let me know if you need further information to reproduce the bugs.
> 
> yours,
>  Thorsten Lingk

-- 
Thomas Lockhart                lockhart@alumni.caltech.edu
South Pasadena, California


Re: [HACKERS] Re: Bugs in Postgres

From
Tom Lane
Date:
Thomas Lockhart <lockhart@alumni.caltech.edu> writes:
> The plpgsql function problem sounds like an issue with an index on a
> system table, and may have been fixed for the upcoming release, but I
> don't recall anything specifically.

Yes, that sure sounds like an index-tuple-size overflow in the index
that 6.5.* and prior versions kept on pg_proc's prosrc field.  7.0
doesn't keep such an index, so it's proof against this particular limit.

IIRC, the maximum safe length of a procedure definition in <=6.5 is
2700 bytes.  Sometimes you will get away with more, sometimes not,
depending on what winds up on the same index page with your procedure...
        regards, tom lane