[comp.soft-sys.andrew] Incorrect error msg in AFS'd EZ

paw@eleazar.dartmouth.edu (Pat Wilson) (03/12/91)

Running EZ on an RS6000, one of my users (who was _severely_ over quota 
at the time) got the following error when he tried to save:
	cannot save file: network is down
Of course, the network was fine - it was his volume that was having
problems.  I haven't looked at the EZ code to figure out what it's
checking, but it seems like it might not be too hard to put a different
(and more correct) error out in this situation.

[RS/6000 running AIX 3.1.3003, AFS 3.1, and ATK pl9]

Thanks.

-- 
Pat Wilson
Systems Manager, Project NORTHSTAR
paw@northstar.dartmouth.edu

gk5g+@ANDREW.CMU.EDU (Gary Keim) (03/15/91)

Excerpts from misc: 12-Mar-91 Incorrect error msg in AFS'.. Pat
Wilson@ucbvax.Berkel (566)

> I haven't looked at the EZ code to figure out what it's
> checking, but it seems like it might not be too hard to put a different
> (and more correct) error out in this situation.

I just read it and[An Andrew ToolKit view (a footnote) was included
here, but could not be displayed.] I'm of the opinion that it's an AFS
bug.  Here is the code frag from andrew/atk/frame/framecmd.c [static int
saveBuffer()]:

    result = buffer_WriteToFile(buffer, filename,
				buffer_ReliableWrite | buffer_MakeBackup);

    if (result >= 0) {
	/* Success */
    }
    else
        switch (errno) {
            case EACCES:
                message_DisplayString(outputFrame, 0,
				 "Could not save file; permission denied.");
                break;
#ifdef ETIMEDOUT
            case ETIMEDOUT:
                message_DisplayString(outputFrame, 0,
				 "Could not save file; a server is down.");
                break;
#endif /* ETIMEDOUT */
#ifdef EFAULT
            case EFAULT:
                message_DisplayString(outputFrame, 0,
				 "Could not save file; a server is down.");
                break;
#endif /* EFAULT */
#ifdef EDQUOT
            case EDQUOT:
                message_DisplayString(outputFrame, 0,
			    "Could not save file; you are over your quota.");
                break;
#endif /* EDQUOT */
            case ENOSPC:
                message_DisplayString(outputFrame, 0,
		      "Could not save file; no space left on partition.");
                break;
#ifdef EIO
            case EIO:
                message_DisplayString(outputFrame, 0,
	 "Could not save file; an I/O error occurred on the disk.");
                break;
#endif /* EIO */
            case EISDIR:
                message_DisplayString(outputFrame, 0,
	 "File not found; could not create. Attempt to write to a directory.");
                break;
            default:
                sprintf(message, "Could not save file: %s.", UnixError(errno));
                message_DisplayString(outputFrame, 0, message);
        }