Re: libpq++ update

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Tom Vijlbrief <tom(dot)vijlbrief(at)knoware(dot)nl>
Cc: pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>, pgsql-patches <pgsql-patches(at)postgresql(dot)org>
Subject: Re: libpq++ update
Date: 2000-06-13 00:03:35
Message-ID: 200006130003.UAA11215@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-patches

Tom Vijlbrief, Tom Lane added some of your patches to 7.0. Do you have
anything new for 7.1? I know you were still working on it when we
entered beta.

> ============================================================================
> POSTGRESQL BUG REPORT TEMPLATE
> ============================================================================
>
>
> Your name : Tom Vijlbrief
> Your email address : tom(dot)vijlbrief(at)knoware(dot)nl
>
>
> System Configuration
> ---------------------
> Architecture (example: Intel Pentium) : Intel PII
>
> Operating System (example: Linux 2.0.26 ELF) : Linux 2.3.51
>
> PostgreSQL version (example: PostgreSQL-6.5.3): PostgreSQL-6.5.3
>
> Compiler used (example: gcc 2.8.0) : egcs-2.91.66
>
>
> Please enter a FULL description of your problem:
>
> libpq++ leaks file descriptors and memory.
>
> The constructor of PgConnection leaks a file everytime it is called.
> Also DEBUG is on by default.
>
> In addition the header file libpq++.H is insane. It contains
> outdated copies of the header files (pglobject.h and the others).
>
> The libpq++.H declares a smaller PgLargeObject (without class member
> variables) then the PgLargeObject in pglobject.h.
> This is the reason that examples/testlo crashes !
>
> I fixed the header classes and memory/file leakage. I also added
> header file PostgresDatabase.h which contains a new implementation
> with exception handling, cursors and transactions. Look at
> examples/testexcep.cc for the usage. The C++ interface is still
> compatible with the old version.
>
>
> Please describe a way to repeat the problem. Please try to provide a
> concise reproducible example, if at all possible:
> ----------------------------------------------------------------------
> Running the next program, it crashes after approx. 1000 iterations
> (depending on configuration of OS)
>
>
> #include <libpq++.H>
>
> #include <iostream>
>
> int main()
> {
> for (int i= 0; i < 10000; i++) {
> cerr << i << endl;
> PgConnection("");
> }
> }
>
>
> Running examples/testlo crashes with a damaged stack.
>
>
> If you know how this problem might be fixed, list the solution below:
> ---------------------------------------------------------------------
>
> change 'FILE * debug' from a local var to a static var in
> pgconnection.cc.
>
> I added a tar containing a new version of the src/interfaces/libpq++
> directory
> because many files (source, headers, README, TODO, CHANGES) are
> changed.

[ Attachment, skipping... ]

--
Bruce Momjian | http://www.op.net/~candle
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Bruce Momjian 2000-06-13 00:21:26 Re: CLUSTER bug
Previous Message Bruce Momjian 2000-06-12 22:38:40 Re: Problem with ecpg

Browse pgsql-patches by date

  From Date Subject
Next Message Denis Perchine 2000-06-13 00:52:45 Re: Caching number of blocks in relation to avoi lseek.
Previous Message Bruce Momjian 2000-06-12 23:53:48 Re: [PORTS] Locale bug