From: jcarter@nas.nasa.gov (John R. Carter Sr.)
Subject: Bugs in INFORMIX 4.0 SE, 4GL (?)
Organization: Numerical Aerodynamic Simulation Facility NASA
Date: Thu, 9 Apr 92 18:32:48 GMT
Reply-To: jcarter@nas.nasa.gov (John R. Carter Sr.)

The following is provided FYI:

We recently ported a running application from a Sun 3 with 4.0 OS using
Informix 2.1 with 4GL and ESQL/C to a Sparc 2 with 4.1 OS using
Informix 4.0 using SE, 4GL, and ESQL/C. The system is networked with
IP/TCP to many other hosts composed of SGI 4D, Sun 3, Sun 4, Sparc 1,
and Sparc 2 systems. The IRIS systems will use either iris-ansi-net
or xterm. The Sun systems will use either sunview or xterm. The users
sometimes will set TERM on login to vt100 rather than take the default
emulation.


Problem #1:
The application is normally run with the operators logged into the Sun
from another system over the net from one of the other hosts.  The
terminal emulation is either iris-ansi-net, xterm, or vt100. The
problem noted is when the user is logged in from an IRIS using xterm
(from a Sun with xterm there is no problem).

The application uses the RUN command to execute a C program in the
following manner:

	LET cmd = "pgm ", arg1 CLIPPED, arg2 CLIPPED
	RUN cmd RETURNING status

When logged in from an IRIS using the xterm emulation the application
seems to run fine but it is noticed that the C program executes too 
quickly.  When we exit from the application we notice that the user's 
shell shows an error, "pgm not found". The application does not check 
the RUN status itself, only the returned variable 'status' which we 
find is set to 0 indicating no problem.

When I run the application with the debugger while logged in to the Sun
from the same SGI system using the same terminal emulation there is no
problem.  This more or less confirms that the problem is with Informix
and not anything else.

I modified the application as follows: 

	LET cmd = "/fullpath/pgm ", arg1 CLIPPED, arg2 CLIPPED
	RUN cmd CLIPPED RETURNING status

The new program now works fine on an SGI using xterm. This confirms my
suspicion that the PATH is not being passed from parent to child when
using the RUN command, and only when logged in over the net from an SGI
system.


Problem #2:
The errorlog command in Informix 4.0 does not trim trailing blanks from
the variable passed before writing the variable contents to the error
log as it used to with Informix 2.1. With the variable defined as a
CHAR(512), each line in the error log file is now 512 bytes long even
though the error message itself may be NULL. By modifying the CALL
statement to CLIP the message, the problem is resolved:

	CALL errorlog(msg CLIPPED)



If anyone knows what I'm doing wrong here with either of these
problems, please let me know. Thanks.

------------------------------------------------------------------------------
John R. Carter, Sr.                          Programmer/Analyst - Informix DBA
Computer Sciences Corporation                jcarter@nas.nasa.gov
Numerical Aerodynamic Simulation             415/604-3662
NASA Ames Research Center, Moffett Field, CA 94035-1000   M/S 258-6
------------------------------------------------------------------------------