[comp.databases] Memory Fault on Informix On-line

bander@oswine.cs.odu.edu (Jim Bander) (06/19/91)

We are running Informix On-line release 4.0 on a Bull DPX/2 (Unix 
minicomputer).  The database has in excess of 120 tables, each of whose
name is 18 characters long.  When running isql form generation, report 
generation, and table information utilities, there is a memory fault
core dump on the table selection screen.

This doesn't happen to the owner of the database (informix user), only to 
other users.  Since the other users see table names as longer (with an 
"informix." prefix), we tried shortening the table names to 4 characters
each:  the problem disappeared!

HFSI thinks this is not a Bull-specific problem--probably an Informix bug
associated with shared memory pages?

Has anyone out there...
     1.  seen this problem before,  or
     2.  seen a Unix system run Informix On-line 4.0 with lots of tables
          and long file names?

john@Equi.com (John J. Ackley) (06/19/91)

bander@oswine.cs.odu.edu (Jim Bander) writes:
> We are running Informix On-line release 4.0 on a Bull DPX/2 (Unix 
> minicomputer).  The database has in excess of 120 tables, each of whose
> name is 18 characters long.  When running isql form generation, report 
> generation, and table information utilities, there is a memory fault
> core dump on the table selection screen.
> 
...
> Has anyone out there...
>      1.  seen this problem before,  or
>      2.  seen a Unix system run Informix On-line 4.0 with lots of tables
>           and long file names?

I was not able to duplicate the core dumps, but I did run into some problems.
We running Online 4.00.UE1 on a Motorola Delta 3308 with SysV/68 R3V6.

As user informix, I created the following table:

	DBSCHEMA Schema Utility       INFORMIX-SQL Version 4.00.UE1  
	Copyright (C) Informix Software, Inc., 1984-1989
	Software Serial Number INF#Fxxxxxx
	{ TABLE "informix".bigtablenamewith18 row size = 20
				number of columns = 2 index size = 0 }
	create table "informix".bigtablenamewith18 
	  (
		col1 integer,
		col2 char(16)
	  );
	revoke all on "informix".bigtablenamewith18 from "public";

Then I popped back out to myself and generated and compiled a default form:

	database testdb
	screen size 24 by 80
	{
	col1               [f000       ]
	col2               [f001            ]
	}
	end
	tables
	bigtablenamewith18=informix.bigtablenamewith18
	attributes
	f000 = bigtablenamewith18.col1;
	f001 = bigtablenamewith18.col2;
	end

So far so good.  However, when I ran the form, the ring menu was very odd.
The item description text and the first item token were fine, but the
second and following menu item token were replaced by "*"'s.  Pressing
the first letter of what should have been the item tokens did not work.
Rotating on the menu with the spacebar then pressing return did produce
the appropriate actions.

On to Report.  Again I did not encounter a core dump, but the default
ACE report did not compile.  Here's the error file it generated:

	database testdb end

	select
		col1,
		B^D,2
	#________^
	# 
	#      An illegal (invisible, control) character has been found
	# on line 5, character 10. It has been replaced by a blank
	# in the listing, but it is still in the source (input) file,
	# and should be removed before attempting to compile again.
	# See error number -8027.
	# 
	from informix.bigtablenamewith18 end
	# 
	#      An illegal character has been found in the statement.
	# See error number -202.
	# 

	format every row end

[I changed the control-D to a '^' and a 'D' for posting.]

So there you have it.  ISQL seems to dislike very long table names.
BTW, 18 characters is the maximum; from systables:

	Column name          Type                                    Nulls

	tabname              char(18)                                yes
	owner                char(8)                                 yes
	...

> HFSI thinks this is not a Bull-specific problem--probably an Informix bug
> associated with shared memory pages?
> 
This is probably due to buffer overflow, which would explain your core dumps,
and seems to be in line with what I've experienced.

Most of our table names are much shorter, so we don't see this regularly.

Good Luck
-- 
John Ackley <john@equi.com> // The usual disclaimer stuff