>here is a bug which is reproducible on FreeBSD-2.2.6
>as well as on FreeBSD-2.2.7:
>
>
>nadia:mergl> echo -n "testing large objects using blob_read" >/tmp/gaga
>nadia:mergl> createdb pgtest
>nadia:mergl> psql pgtest
>...
>pgtest=> CREATE TABLE lobject ( id int4, loid oid );
>CREATE
>pgtest=> INSERT INTO lobject (id, loid) VALUES (1, lo_import('/tmp/gaga'));
>pqReadData() -- backend closed the channel unexpectedly.
>        This probably means the backend terminated abnormally before or while processing the request.
>We have lost the connection to the backend, so further processing is impossible.  Terminating.

Reproduced here too. Please try included patches...

Tatsuo Ishii
t-ishii@sra.co.jp
---------------------------------------------------------------------------
*** postgresql-v6.4/src/backend/storage/large_object/inv_api.c~	Thu Nov  5 17:48:26 1998
--- postgresql-v6.4/src/backend/storage/large_object/inv_api.c	Thu Nov 12 15:52:59 1998
***************
*** 549,556 ****
  				tuplen = inv_wrnew(obj_desc, buf, nbytes - nwritten);
  			else
  				tuplen = inv_wrold(obj_desc, buf, nbytes - nwritten, tuple, buffer);
  		}
! 		ReleaseBuffer(buffer);
  
  		/* move pointers past the amount we just wrote */
  		buf += tuplen;
--- 549,557 ----
  				tuplen = inv_wrnew(obj_desc, buf, nbytes - nwritten);
  			else
  				tuplen = inv_wrold(obj_desc, buf, nbytes - nwritten, tuple, buffer);
+ 			ReleaseBuffer(buffer);
  		}
! 
  
  		/* move pointers past the amount we just wrote */
  		buf += tuplen;

Thu, 12 Nov 1998 16:29:43 +0900
Tatsuo Ishii <t-ishii@sra.co.jp>
Re: [BUGS] bug in postgresql-v6.4 on FreeBSD 
Tatsuo Ishii wrote:
> 
> >here is a bug which is reproducible on FreeBSD-2.2.6
> >as well as on FreeBSD-2.2.7:
> >
> >
> >nadia:mergl> echo -n "testing large objects using blob_read" >/tmp/gaga
> >nadia:mergl> createdb pgtest
> >nadia:mergl> psql pgtest
> >...
> >pgtest=> CREATE TABLE lobject ( id int4, loid oid );
> >CREATE
> >pgtest=> INSERT INTO lobject (id, loid) VALUES (1, lo_import('/tmp/gaga'));
> >pqReadData() -- backend closed the channel unexpectedly.
> >        This probably means the backend terminated abnormally before or while processing the request.
> >We have lost the connection to the backend, so further processing is impossible.  Terminating.
> 
> Reproduced here too. Please try included patches...
> 
> Tatsuo Ishii
> t-ishii@sra.co.jp
> ---------------------------------------------------------------------------
> *** postgresql-v6.4/src/backend/storage/large_object/inv_api.c~ Thu Nov  5 17:48:26 1998
> --- postgresql-v6.4/src/backend/storage/large_object/inv_api.c  Thu Nov 12 15:52:59 1998
> ***************
> *** 549,556 ****
>                                 tuplen = inv_wrnew(obj_desc, buf, nbytes - nwritten);
>                         else
>                                 tuplen = inv_wrold(obj_desc, buf, nbytes - nwritten, tuple, buffer);
>                 }
> !               ReleaseBuffer(buffer);
> 
>                 /* move pointers past the amount we just wrote */
>                 buf += tuplen;
> --- 549,557 ----
>                                 tuplen = inv_wrnew(obj_desc, buf, nbytes - nwritten);
>                         else
>                                 tuplen = inv_wrold(obj_desc, buf, nbytes - nwritten, tuple, buffer);
> +                       ReleaseBuffer(buffer);
>                 }
> !
> 
>                 /* move pointers past the amount we just wrote */
>                 buf += tuplen;



yes, this patch works also for me.
It is needed to pass 'make test' for DBD-Pg-0.89.


thanks
Edmund
-- 
Edmund Mergl          mailto:E.Mergl@bawue.de
Im Haldenhau 9        http://www.bawue.de/~mergl
70565 Stuttgart       fon: +49 711 747503
Germany

Fri, 13 Nov 1998 22:43:28 +0000
Edmund Mergl <E.Mergl@bawue.de>
Re: [HACKERS] Re: [BUGS] bug in postgresql-v6.4 on FreeBSD