Friday, October 21, 2005

cannot create /etc/foo: Operation not applicable

Subject: SUMMARY: cannot create /etc/foo: Operation not applicable

Original question:

> On a Solaris 8 system running fine for two months, I suddenly get this:
>
> # touch /etc/foo
> touch: cannot create /etc/foo: Operation not applicable
>
> Truss says:
> creat("/etc/foo", 0666) Err#89 ENOSYS
>
> I also noted truncated files in /etc.
>
> There is nothing interesting in the system log. System is a V210 running
> Solaris 8 with recommended patches from feb. 28 2005. Root filesystem is
> mirrored using SVM.

The responses I received include:

- Are you out of disk space
- Are you out of inodes
- Do you have the same problem on other partitions like /var or /opt
- Are you running the automounter
- Are the permissions wrong on /etc
- Is the "touch" command malfunctioning
- Is the root filesystem mounted read-only
- Are you also unable to modify files in /etc
- Does your metastat output show weird things
- Do you already have a file name "foo" in /etc

The answer is "no" to all these points. So I requested downtime with the
customer to bring the system into single-user mode to do a filesystem check.
As expected, many errors showed up, but it was able to repair the root
filesystem and the system is running fine now.

I also logged a case with Sun Support about this issue. They sent me two
documents from SunSolve that describe common reasons for filesystem
corruption. Since the call is closed now I cannot retrieve the document
ID's, sorry for that. The only two reasons that remain after reading these
documents are:

- Applications use the unlink(2) system call without checking if the
directory is empty. This is a classical UNIX problem.
- Bugs in the O.S.

I have no idea how to check if some of the running processes are misusing
unlink(2). Maybe dtrace can do this, but this is a Solaris 8 system. As for
bugs in the OS, I haven't found applicable ones on SunSolve.

Thanks to all who replied.

--
Koef.

0 Comments:

Post a Comment

<< Home