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.