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-04-20 15:44:50
Message-ID: 200004201544.LAA01617@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-patches

This looks like good stuff. Can someone suggest what I should do with
it, seeing how close we are to 7.0 final? Maybe I should create a diff
now, and apply it to 7.0.1.

> ============================================================================
> 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 Peter Eisentraut 2000-04-21 22:06:46 Re: [HACKERS] Re: Join/table alias bug
Previous Message Tom Vijlbrief 2000-04-20 15:11:22 libpq++ update

Browse pgsql-patches by date

  From Date Subject
Next Message D'Arcy J.M. Cain 2000-05-31 02:23:27 Announce: Release of PyGreSQL version 3.0
Previous Message Tom Vijlbrief 2000-04-20 15:11:22 libpq++ update