Port Bug Report: lo_import crash the backend. And there is obviously problems in large objects support.

From: Unprivileged user <nobody>
To: pgsql-ports(at)postgresql(dot)org
Subject: Port Bug Report: lo_import crash the backend. And there is obviously problems in large objects support.
Date: 1999-03-20 13:53:46
Message-ID: 199903201353.IAA97538@hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ports


============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================

Your name : Philippe Rochat
Your email address : Philippe(dot)Rochat(at)epfl(dot)ch

Category : runtime: back-end
Severity : non-critical

Summary: lo_import crash the backend. And there is obviously problems in large objects support.

System Configuration
--------------------
Operating System : Solaris 2.6

PostgreSQL version : 6.4.2

Compiler used : gcc 2.7.2.3

Hardware:
---------
Ultra sparc
SunOS lbdsun11 5.6 Generic_105181-03 sun4u sparc SUNW,Ultra-1

Versions of other tools:
------------------------

--------------------------------------------------------------------------

Problem Description:
--------------------
postgres=> insert into test values (lo_import('/tmp/edicom.gif'));
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.

I have dig around in the code, and putting echoes I finally
localized the place where it crashes:
in file inv_api.c, function inv_newtuple (around line 1000 ... due
to the echo I put in the code lines haven't orginal number).

I get this, that could maybe help (but for myself I cannot figure out
the exact problem):

elog(NOTICE, "inv_api 3.8c (%d / %d)",obj_desc->offset, nwrite );
*((int32 *) attptr) = obj_desc->offset + nwrite - 1;
elog(NOTICE, "inv_api 3.8d");
And the result:
NOTICE: inv_api 3.8c (0 / 1024)
pqReadData() -- backend closed the channel unexpectedly.

(And it's the first time it get there in the inversion processing)

Entire log it here (but probably wont means so much for you:
postgres=> insert into test values (lo_import('/tmp/edicom.gif'));
NOTICE: fs-2
NOTICE: fe-2
NOTICE: fs-2-bis
NOTICE: fs-2.bis.1 (1024)
NOTICE: inv_api 1
NOTICE: inv_api 2
NOTICE: inv_api 3
NOTICE: inv_api 1.1
NOTICE: inv_api 1.2
NOTICE: inv_api 1.2.1
NOTICE: inv_api 2.1
NOTICE: inv_api 2.2
NOTICE: inv_api 2.3
NOTICE: inv_api 2.4
NOTICE: inv_api 2.5.1
NOTICE: inv_api 2.7
NOTICE: inv_api 3.1
NOTICE: inv_api 3.2
NOTICE: inv_api 3.3
NOTICE: inv_api 3.4
NOTICE: inv_api 3.5
NOTICE: inv_api 3.6
NOTICE: inv_api 3.7
NOTICE: inv_api 3.8
NOTICE: inv_api 3.8a
NOTICE: inv_api 3.8b
NOTICE: inv_api 3.8c (0 / 1024)
NOTICE: fs-2
NOTICE: fe-2
NOTICE: fs-2-bis
NOTICE: fs-2.bis.1 (1024)
NOTICE: inv_api 1
NOTICE: inv_api 2
NOTICE: inv_api 3
NOTICE: inv_api 1.1
NOTICE: inv_api 1.2
NOTICE: inv_api 1.2.1
NOTICE: inv_api 2.1
NOTICE: inv_api 2.2
NOTICE: inv_api 2.3
NOTICE: inv_api 2.4
NOTICE: inv_api 2.5.1
NOTICE: inv_api 2.7
NOTICE: inv_api 3.1
NOTICE: inv_api 3.2
NOTICE: inv_api 3.3
NOTICE: inv_api 3.4
NOTICE: inv_api 3.5
NOTICE: inv_api 3.6
NOTICE: inv_api 3.7
NOTICE: inv_api 3.8
NOTICE: inv_api 3.8a
NOTICE: inv_api 3.8b
NOTICE: inv_api 3.8c (0 / 1024)
pqReadData() -- backend closed the channel unexpectedly.
)

It was working well with 6.3.2 but since I upgraded to 6.4.2
I have no more large objects.

--------------------------------------------------------------------------

Test Case:
----------

--------------------------------------------------------------------------

Solution:
---------

--------------------------------------------------------------------------

Browse pgsql-ports by date

  From Date Subject
Next Message Philippe Lefevre 1999-03-20 22:24:43 PostgreSQL failed to compile
Previous Message Bruce Momjian 1999-03-20 13:19:59 Re: [PORTS] Port Bug Report: the IN clause in SELECT does not work