Received: from sss.sss.pgh.pa.us (sss.pgh.pa.us [209.114.166.2]) by hub.org (8.9.3/8.9.3) with ESMTP id BAA58757 for ; Mon, 6 Dec 1999 01:09:43 -0500 (EST) (envelope-from tgl@sss.pgh.pa.us) Received: from sss.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.sss.pgh.pa.us (8.9.1/8.9.1) with ESMTP id BAA15299; Mon, 6 Dec 1999 01:08:33 -0500 (EST) To: Charles Randle cc: pgsql-interfaces@postgreSQL.org Subject: Re: [INTERFACES] Problems with postgres V6.5.3 large objects In-reply-to: Your message of Mon, 06 Dec 1999 00:44:43 -0500 <384B4D4B.BF6EE9D6@cybervale.com> Date: Mon, 06 Dec 1999 01:08:33 -0500 Message-ID: <15297.944460513@sss.pgh.pa.us> From: Tom Lane Charles Randle writes: > In terms of access to the large object, my class maintains an array of > objects which are currently open (Oid,name,file descriptor etc ..). > Whenever access is needed to any large object an accessor method > simply executes 'lo_read'/lo_write' or lo_seek as is desired . If the > object is not on the active list then another method opens the object > (using lo_open ).As is to be expected the destructor of the class > closes all open objects . Sounds reasonable as far as it goes. My best guess at this point is a client-side memory stomp that is clobbering libpq's record of which function OID to call for each available LO operation. See interfaces/libpq/fe-lobj.c, particularly lo_initialize() and its callers, and then try tracing through the client with a debugger to see where the conn->lobjfuncs struct gets clobbered. Good luck! regards, tom lane