Consultor Eletrônico



Kbase P20582: Running a probuilt _progres that includes HLC and TCP, cause
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   3/14/2003
Status: Unverified

FACT(s) (Environment):

NCR

FACT(s) (Environment):

Solaris SPARC 8 64-bit

FACT(s) (Environment):

Progress 8.3A

FACT(s) (Environment):

Progress 9.1D

SYMPTOM(s):

Running a probuilt _progres that includes HLC and TCP, causes a memory violation.

Core file is produced along with protrace file.

Migrated from Progress 8.3A to 9.1D.

Migrated from NCR 32-bit to Solaris SPARC 8 64-bit.

Running Progress 32-bit on 64-bit OS.

A call to the Vertex Utility, Vertex "test", cores with error 49.

PROGRESS stack trace as of Wed Mar 5 15:07:21 2003
Command line arguments are
/AST/work/_progres.qp -pf /AST/scp/startupq.pf

uttrace() +0x100 from: /AST/work/_progres.qp
utcore() +0xec from: /AST/work/_progres.qp
drexit() +0x5cc from: /AST/work/_progres.qp
drExitOnTerm() +0x2c0 from: /AST/work/_progres.qp
_setuid() +0x60 from: /usr/lib/libc.so.1
_doprnt() +0x1c04 from: /usr/lib/libc.so.1
sprintf() +0x38 from: /usr/lib/libc.so.1
vertex() +0x7dc from: /AST/work/_progres.qp
vertex() +0x1058 from: /AST/work/_progres.qp
vertex() +0x2d0c from: /AST/work/_progres.qp
vertex() +0x320 from: /AST/work/_progres.qp
PRODSP() +0x3f8 from: /AST/work/_progres.qp
rnhlccall() +0x158 from: /AST/work/_progres.qp
rnexec_entry() +0x578 from: /AST/work/_progres.qp
rninterpret() +0x6c from: /AST/work/_progres.qp
umeDispatchEvent() +0x1578 from: /AST/work/_progres.qp
wvRunDispatcher() +0xa88 from: /AST/work/_progres.qp
iodispatch() +0xd8 from: /AST/work/_progres.qp
rnrq() +0x160 from: /AST/work/_progres.qp
main() +0x2dc from: /AST/work/_progres.qp
_start() +0x5c from: /AST/work/_progres.qp

They can run mpro and run all 4gl programs w/o a problem.

CAUSE:

When call VERTEX "test" is run from within their startup script, Vertex is trying to display a message that it failed to connect to a database. The message writes to a string using sprintf. The arguments passed to sprintf are GEOCODE_DATABASE_NAME, SERVER_NAME, USER_ID, PWD, which resolve to:
getenv("GEOCODE"), getenv("ASTEASERVER"), getenv("ASTEAUSERID"), getenv("ASTEAPASSWORD"). Vertex is searching the environment for these variables. If these variables are not set, getenv returns NULL, which causes the memory violation.

FIX:

Define those variables in the script.