Thread: Memory leaks for large objects
Ok, I think large objects are leaking memory because the large object functions in the backend use their own GlobalMemoryContext (called Filesystem), which (according to a quick grep) is never freed. Supposing this is true and I ensure that the large object subsystem always uses the current memory context for it's memory allocations. What might go wrong? (Or why did the designers decide to use a GlobalMemoryContext for large objects?). I simple don't understand why one would create a special memory context for large objects without some special reason. Or should I just try it and see is anything breaks? Thanks for any comments. Maurice
On Mon, 16 Feb 1998, Maurice Gittens wrote: > Ok, > > I think large objects are leaking memory because the large object functions > in the backend use their own GlobalMemoryContext (called Filesystem), which > (according to a quick grep) is never freed. > > Supposing this is true and I ensure that the large object subsystem always > uses the current memory context for it's memory allocations. > > What might go wrong? (Or why did the designers decide to use a > GlobalMemoryContext for large objects?). > > I simple don't understand why one would create a special memory context > for large objects without some special reason. > Or should I just try it and see is anything breaks? I was wondering the same thing when I was looking at that part of the code a couple of months back. It would be interesting to see if anything did break. -- 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
Peter T Mount wrote: > On Mon, 16 Feb 1998, Maurice Gittens wrote: > > > Ok, > > > > I think large objects are leaking memory because the large object functions > > in the backend use their own GlobalMemoryContext (called Filesystem), which > > (according to a quick grep) is never freed. > > > > Supposing this is true and I ensure that the large object subsystem always > > uses the current memory context for it's memory allocations. > > > > What might go wrong? (Or why did the designers decide to use a > > GlobalMemoryContext for large objects?). > > > > I simple don't understand why one would create a special memory context > > for large objects without some special reason. > > Or should I just try it and see is anything breaks? > > I was wondering the same thing when I was looking at that part of the code > a couple of months back. It would be interesting to see if anything did > break. 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