Thread: Re: [HACKERS] Memory leaks for large objects

Re: [HACKERS] Memory leaks for large objects

From
"Maurice Gittens"
Date:
>
>Does the large object I/O persist across transactions? If so, then storage
would
>need to be outside of the usual context, which is reset after every
transaction.
>Is there a place where the large object context could be freed, but is not
at
>the moment?
>
>                                                          - Tom


Large object I/O does not persist across transactions in my case.
But maybe there are applications which assume that it does. So
"fixing" it might break things. How about some compile time flag
which selects between the old behaviour and new behaviour?
The old behaviour could be the default.

(The new behaviour would simply avoid fiddling with MemoryContexts at all.)
My current workaround is to reconnect to the database after some
number of transactions.

Regards,
  Maurice


Re: [HACKERS] Memory leaks for large objects

From
Bruce Momjian
Date:
>
> Large object I/O does not persist across transactions in my case.
> But maybe there are applications which assume that it does. So
> "fixing" it might break things. How about some compile time flag
> which selects between the old behaviour and new behaviour?
> The old behaviour could be the default.
>
> (The new behaviour would simply avoid fiddling with MemoryContexts at all.)
> My current workaround is to reconnect to the database after some
> number of transactions.

Large object have been broken for quite some time.  I say remove the
memory context stuff and see what breaks.  Can't be worse than earlier
releases, and if there is a problem, it will show up for us and we can
issue a patch.

--
Bruce Momjian
maillist@candle.pha.pa.us

Re: [HACKERS] Memory leaks for large objects

From
Peter T Mount
Date:
On Wed, 18 Feb 1998, Maurice Gittens wrote:

> > >Does the large object I/O persist across transactions? If so, then
> storage would >need to be outside of the usual context, which is reset
> after every transaction.  >Is there a place where the large object
> context could be freed, but is not at >the moment?  > > - Tom

> Large object I/O does not persist across transactions in my case.

They do here when I've tried them.

> But maybe there are applications which assume that it does. So
> "fixing" it might break things. How about some compile time flag
> which selects between the old behaviour and new behaviour?
> The old behaviour could be the default.
>
> (The new behaviour would simply avoid fiddling with MemoryContexts at all.)
> My current workaround is to reconnect to the database after some
> number of transactions.

At the moment, JDBC defaults to not using transactions. As not many
java apps are using large objects yet (its a new 6.3 feature), it
shouldn't be difficult to disable the API's if autoCommit is enabled (aka
no transaction).

Thinking about it, the large object examples in the source tree use
transactions, so perhaps this is the original behaviour...

--
Peter T Mount  petermount@earthling.net or pmount@maidast.demon.co.uk
Main Homepage: http://www.demon.co.uk/finder
Work Homepage: http://www.maidstone.gov.uk Work EMail: peter@maidstone.gov.uk