Port Bug Report: lo_import fails - SIGBUS error in inv_newtuple

Поиск
Список
Период
Сортировка
От Unprivileged user
Тема Port Bug Report: lo_import fails - SIGBUS error in inv_newtuple
Дата
Msg-id 199903162100.QAA64272@hub.org
обсуждение исходный текст
Ответы Re: [PORTS] Port Bug Report: lo_import fails - SIGBUS error in inv_newtuple
Список pgsql-ports
============================================================================
                        POSTGRESQL BUG REPORT TEMPLATE
============================================================================


Your name        : Lysander David
Your email address    : ldavid@verisign.com

Category        : runtime: back-end
Severity        : critical

Summary: lo_import fails - SIGBUS error in inv_newtuple

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

  PostgreSQL version : 6.4.2

  Compiler used      : gcc 2.7.1

Hardware:
---------
Sun Ultra 5, 256M RAM

Versions of other tools:
------------------------
gmake - 3.74
flex - 2.5.4

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

Problem Description:
--------------------
When attempting to use lo_import to insert a
large object, it fails.

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

Test Case:
----------
1) create database test
   createdb test

2) create a file to create the table named create.sql
   with the contents
   CREATE TABLE test (
          id int4 PRIMARY KEY,
          largeObject oid
   );
3) execute create.sql
   psql -d test -f create.sql

4) create a file to insert a row named insert.sql
   with these contents
   INSERT INTO test ( id, largeObject)
      VALUES ( 1, lo_import (<some local file>));

5) execute insert.sql
   psql -d test -f insert.sql

6) it will fail with output like this :
32 postgres@ldavid-sun.verisign.com:/home/postgres/devel/build/BuildReq/Query% psql -d test -f insert.sql
postmaster: ServerLoop:        handling reading 5
postmaster: ServerLoop:        handling reading 5
postmaster: ServerLoop:        handling writing 5
postmaster: BackendStartup: environ dump:
-----------------------------------------
    PWD=/home/postgres/devel/build/BuildReq/Query
    TERM=dumb
    TERMCAP=
    COLUMNS=80
    EMACS=t
    DISPLAY=ldavid-sun:0.0
    POSTGRES_HOME=/net/ldavid-sun/disk1/opt/postgres
    LC_CTYPE=C
    LC_COLLATE=C
    PGDATA=/net/ldavid-sun/disk1/opt/postgres/data
    PGLIB=/net/ldavid-sun/disk1/opt/postgres/lib
    PURIFYOPTIONS=-follow-child-processes=yes
    FE_PC_EN_INSTALL=/ecas/public/fe-pc-en/
    FE_PC_CC_INSTALL=/ecas/public/fe-pc-cc/
    FE_SC_EN_INSTALL=/ecas/public/fe-sc-en/
    FE_SC_CC_INSTALL=/ecas/public/fe-sc-cc/
    FE_ONSITE_CRS_INSTALL=/ecas/public/fe-onsite-crs/
    FE_ONSITE_CC_INSTALL=/ecas/public/fe-onsite-cc/
    FE_ONSITE_EN_INSTALL=/ecas/public/fe-onsite-en/
    FE_EN_INSTALL=/ecas/public/fe-en/
    FE_OP_INSTALL=/ecas/public/fe-op/
    BE_INSTALL=/ecas/public/be/
    PORTAL=/opt/pin/5.0/
    ONE_OP_ALLOWED=1
    ECAS_ARGS_DEBUG=1
    ECAS_LOG_LEVEL=ECAS_LOG_DEBUG
    QMDEBUG=1
    ECAS_CUSTOM_CFG=/net/ldavid-sun/disk1/tcheung/build/make/custom/SunOS55.cfg
    AEAPPROVE=1
    LRACERT=1
    ECASINSTALL=/ecas/public/be/

BEFORE_PATH=/net/ldavid-sun/disk1/opt/tcl/bin:/home/build/tools/Cvs/bin:/net/david-sun/disk1/opt/gnu/bin:/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/opt/SUNWspro/bin:/usr/dt/bin:/usr/openwin/bin:/bin:/usr/bin:/usr/ucb:/usr/contrib/bin:/usr/ccs/bin:/u/tools/bin:/home/pure/purify-4.0-solaris2:/usr/sbin:/usr/lib/lp:~/bin:.:/home/ddts/bin:/home/oracle/orahome/bin:/disk1/opt/tex/bin/sparc-solaris2.5.1:~/lbin2:/usr/openwin/bin:/opt/lesstif/bin:/u/tools/bin
    ORAHOME=/home/oracle/orahome
    ORACLE_DOC=/home/oracle/orahome/odoc
    ORACLE_SID=sid1
    ORACLE_NLS=/home/oracle/orahome/ocommon/nls/admin/data
    ORACLE_TERM=xsun
    ORACLE_HOME=/home/oracle/orahome
    TK_LIBRARY=/net/ldavid-sun/disk1/opt/tcl/lib
    TCL_LIBRARY=/net/ldavid-sun/disk1/opt/tcl/lib
    RCSBIN=/opt/gnu/bin
    CVSROOT=/cvs

LD_LIBRARY_PATH=/lib:/usr/lib:/lib/dt/lib:/opt/SUNWspro/lib:/opt/lesstif/lib:/home/oracle/orahome/lib:/net/ldavid-sun/disk1/opt/postgres/bin

MANPATH=/usr/man:/u/tools/man:/opt/SUNWspro/man:/net/ldavid-sun/disk1/opt/gnu/man:/net/ldavid-sun/disk1/opt/tcl/man:/net/ldavid-sun/disk1/opt/postgres/man
    OPENWINHOME=/usr/openwin

PATH=/net/ldavid-sun/disk1/opt/gnu/bin:/ecas/public/be//bin:/net/ldavid-sun/disk1/opt/tcl/bin:/home/build/tools/Cvs/bin:/net/david-sun/disk1/opt/gnu/bin:/usr/local/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/opt/SUNWspro/bin:/usr/dt/bin:/usr/openwin/bin:/bin:/usr/bin:/usr/ucb:/usr/contrib/bin:/usr/ccs/bin:/u/tools/bin:/home/pure/purify-4.0-solaris2:/usr/sbin:/usr/lib/lp:~/bin:.:/home/ddts/bin:/home/oracle/orahome/bin:/disk1/opt/tex/bin/sparc-solaris2.5.1:~/lbin2:/usr/openwin/bin:/opt/lesstif/bin:/u/tools/bin:/net/ldavid-sun/disk1/opt/postgres/bin
    LOGNAME=postgres
    USER=postgres
    SHELL=/bin/csh
    HOME=/home/postgres
    POSTPORT=5432
    POSTID=2147483643
    PG_USER=postgres
    IPC_KEY=5432100
-----------------------------------------
postmaster child[2594]: starting with (/net/ldavid-sun/disk1/opt/postgres/bin/postgres, -p, -d3, -P5, -v131072, test, )
FindExec: found "/net/ldavid-sun/disk1/opt/postgres/bin/postgres" using argv[0]
debug info:
    User         = postgres
    RemoteHost   = localhost
    RemotePort   = 0
    DatabaseName = test
    Verbose      = 3
    Noversion    = f
    timings      = f
    dates        = Normal
    bufsize      = 64
    sortmem      = 512
    query echo   = f
InitPostgres
INSERT INTO test ( id, largeObject )
VALUES ( 1, lo_import ( '/home/postgres/devel/build/BuildReq/Query/rel_note' ));
StartTransactionCommand
postmaster: BackendStartup: pid 2594 user postgres db test socket 5
query: INSERT INTO test ( id, largeObject ) VALUES ( 1, lo_import (
'/home/postgres/devel/build/BuildReq/Query/rel_note')); 
ProcessQuery
postmaster: reaping dead processes...
postmaster: CleanupProc: pid 2594 exited with status 138
postmaster: CleanupProc: reinitializing shared memory and semaphores
shmem_exit(0) [#0]
binding ShmemCreate(key=52e389, size=831176)
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.

7) It fails in the source due to a SIGBUS error in
   inv_api.c:1067

    attptr = ((char *) ntup) + hoff;
->    *((int32 *) attptr) = obj_desc->offset + nwrite - 1;
    attptr += sizeof(int32);


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

Solution:
---------


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


В списке pgsql-ports по дате отправления:

Предыдущее
От: "Jonathan A. Zdziarski"
Дата:
Сообщение: Re: [PORTS] Port Bug Report: The compiler bombs at pgc.l and fails to finish compiling
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: [PORTS] Port Bug Report: lo_import fails - SIGBUS error in inv_newtuple