[comp.sys.next] su gnu-c WorkSpace bugs

rogerj@batcomputer.tn.cornell.edu (Roger Jagoda) (04/13/90)

Folks,
 
Here are some bugs and problems I and other users here have collected
for a while now. Has anyone seen anything like these before and has
suggestions/work-arounds/patches/prayers. Thanks in advance.
 
The bugs:
 
By default, the librarian formats nroff files without pipeing them first
through tbl. This is a problem for some manual pages, and for much of the
sybase documentation. The man command also fails to nroff some man pages
correctly as it leaves them with the wrong permissions (formatted man
pages need to be flagged 444, these go into /usr/man/cat1, while nroff
source files need to go in /usr/man/man1 and need to be flagged 666).
Sometimes man outputs files flagged 600 and users get "permission
denied" errors. Running installman, or changing the permissions by hand
fixes the problem, but it is a bug.
 
There is a bug in the su command which corrupts the environment table
inherited by any sh scripts that one might run, causing them to crash.
The bug is always repeatable, and there is an error message (described)
below, that occurs each time an sh shell script is run.
 
When the command "su - [username]" is used to simulate a full login as
another user (for any user, including root), the environment is
corrupted by the addition of an incomplete symbol. The symbol is the
value of the pre-su environment variable $TERM (for example, vt100).
When a sh script is subsequently run, it exits immediately with the
error message ``$TERM:  is not an identifier'': for example, from a
Terminal application window
 
% su -
password:
# echo $TERM
vt100
# printenv
HOME=/users/<original user's home>
    .
vt100
    .
TERM=vt100
    .
# sh
vt100: is not an identifier
#
 
Note that a legitimate environment variable consists of a symbol, an
equal sign, and a value (as, in the example above, are HOME and TERM).
The entry "vt100" is not a legitimate symbol, and sh does not recognize
it and aborts.
 
CC compiler bug --
 
A bug in the compiler involves the generation of bad instructions by the
optimizer.  While optimizing, the compiler can generate instructions
that the assembler ignores with a warning message. The following short
test program demonstrates the bug:
 
----CUT HERE----
/*        This is about the smallest I can make this program and still have
          it fail. One thing I have noticed, however, is that if I use the
          following prototype and the error goes away:
 
void polint(float *, float *, int, float, float *, float *);
 
Compile as
 
% cc -c -O xpolint.c
/tmp/cc000341.s:31:"instruction/operands mismatch" -- Statement 'fmovel fps,a5'
 ignored
 
*/
 
/* Driver for routine POLINT */
 
#include <stdio.h>
#include <math.h>
void polint();
float *vector();
 
 
#define NP 10	/* maximum value of n */
#define PI 3.1415926
 
main()
{
	int i,n,nfunc;
	float dy,f,x,y,*xa,*ya;
 
	xa=vector(1,NP);
	ya=vector(1,NP);
        scanf("%d",&n);
	for (nfunc=1;nfunc<=2;nfunc++) {
		if (nfunc == 1)	{
			for (i=1;i<=n;i++) {
				xa[i]=i*PI/n;
				ya[i]=sin(xa[i]);
			}
		}  else if (nfunc == 2) {
			for (i=1;i<=n;i++) {
				xa[i]=i*1.0/n;
				ya[i]=exp(xa[i]);
			}
		}
		for (i=1;i<=10;i++) {
			if (nfunc == 1)	{
				x=(-0.05+i/10.0)*PI;
				f=sin(x);
			} else if (nfunc == 2) {
				x=(-0.05+i/10.0);
				f=exp(x);
			}
			polint(xa,ya,n,x,&y,&dy);
			printf("%12.6f %12.6f %12.6f %4s %11f\n",
				x,f,y," ",dy);
		}
	}
}
------CUT HERE------
Compile this program with the optimizer, as follows
 
% cc -c -O main.c
/tmp/cc002574.s:69:"instruction/operands mismatch" -- Statement 'fmovel fps,a5'
ignored
 
The warning does not occur if optimization is not enabled.
 
BTW, this program is an abbreviation of part of the test suite for
``Numerical Recipes in C'' by Press, Flannery, Teukolsky, and
Vetterling.

WorkSpace Manager bug --
 
There is a problem with the way WindowManager deals with disk
mount-dismount events. When an Optical is mounted or unmounted from
WorkSpace Manager, a DPS window comes up from the console (even echos su
events too!) asking to insert the OD or press 'n' if it's not available.
Well, sometimes this works, and other times it doesn't. When it doesn't
though, EVERYTHING is frozen, you can't even move the mouse to click
anything else. You CAN, however, remote login from somewhere and perform
noremal unix commands...EXCEPT restart the Window Manager. You can
remove the offending OD, but the WM will still be stuck solid. a Kill
-HUP will not help (no real reason it should). The only thing left to do
at that point is reboot which seems rather silly.
 
Thanks for listening!
 
--Roger Jagoda
--Cornell University
--FQOJ@CORNELLA.CIT.CORNELL.EDU
 
-- 
------------------------------------------------------------------------------
Roger Jagoda                          -- My employers don't even like paying
Cornell University                         me, let alone accept responsibility
fqoj@cornella.cit.cornell.edu              for anything I say or do! --

judd@blake.acs.washington.edu (Randall Judd) (04/13/90)

In article <10102@batcomputer.tn.cornell.edu>, rogerj@batcomputer.tn.cornell.edu (Roger Jagoda) writes:
> 
> WorkSpace Manager bug --
>  
> There is a problem with the way WindowManager deals with disk
> mount-dismount events. When an Optical is mounted or unmounted from
> WorkSpace Manager, a DPS window comes up from the console (even echos su
> events too!) asking to insert the OD or press 'n' if it's not available.
> Well, sometimes this works, and other times it doesn't. When it doesn't
> though, EVERYTHING is frozen, you can't even move the mouse to click
>  

This sounds similar to a problem I just had with an optical disk.  The scenario
goes something like this.

Remove new optical from shrink wrap
start initialize
name disk and press ok
when directed insert disk
cube locks up, gray window does not go away, mouse does not move

I get out of this with the (right) command tilde key and power off (it
take three tries with various messages for each try).  I did this three
times on my cube, and once on another cube.  I have since bought another
optical and initialized it on my cube with no problem, so it appears the
problem is with the disk and not with the cube, except for what must
be some kind of bug with the initialize.  Has anybody else seen this
or is there a fix out there?  

To email to me please use judd@sunspot.nosc.mil.  Thanks,

                                            Randy Judd