NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/38265: sometimes /kern directory can not be read



>Number:         38265
>Category:       kern
>Synopsis:       sometimes /kern directory can not be read
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 20 09:30:00 +0000 2008
>Originator:     Denis Lagno
>Release:        4.99.55
>Organization:
>Environment:
NetBSD flam.gado 4.99.55 NetBSD 4.99.55 (FLAM) #0: Wed Mar 19 19:10:28 MSK 2008 
 
dina%flam.gado@localhost:/volatile/worksrc/netbsd-current/obj/sys/arch/i386/compile/FLAM
 i386
>Description:
kernfs is mounted:

$ mount | grep kern
kernfs on /kern type kernfs (read-only, local)

$ cat /etc/fstab | grep kern                                                    
                              
none                                                    /kern                   
                                                                                
kernfs  ro                                                                      
                                        0       0

individual files can be read:

$ cat /kern/hz          
100

However directory /kern sometimes fails to be read:
getdents yields EBADF:

$ ktruss ls /kern
  3906      1 ktruss   emul(netbsd)
  3906      1 ktruss   fktrace                     = 0
  3906      1 ktruss   fcntl(0x4, 0x3, 0)          = 1
  3906      1 ktruss   fcntl(0x4, 0x4, 0x1)        = 0
  3906      1 ktruss   execve("/sbin/ls", 0xbfbfebe0, 0xbfbfebec) Err#2 ENOENT
  3906      1 ktruss   execve("/usr/sbin/ls", 0xbfbfebe0, 0xbfbfebec) Err#2 
ENOENT
  3906      1 ls       emul(netbsd)
  3906      1 ls       execve("/bin/ls", 0xbfbfebe0, 0xbfbfebec) JUSTRETURN
  3906      1 ls       mmap(0, 0x8000, 0x3, 0x1002, 0xffffffff, 0, 0, 0) = 
0xbbbea000
  3906      1 ls       open("/libexec/ld.elf_so", 0, 0) = 3
  3906      1 ls       __fstat30(0x3, 0xbfbfeadc)  = 0
  3906      1 ls       mmap(0, 0x5c, 0x1, 0x1, 0x3, 0, 0, 0) = 0xbbbe9000
  3906      1 ls       close(0x3)                  = 0
  3906      1 ls       munmap(0xbbbe9000, 0x5c)    = 0
  3906      1 ls       open("/etc/ld.so.conf", 0, 0) = 3
  3906      1 ls       __fstat30(0x3, 0xbfbfe3f0)  = 0
  3906      1 ls       mmap(0, 0x1000, 0x1, 0x1, 0x3, 0, 0, 0) = 0xbbbe9000
  3906      1 ls       munmap(0xbbbe9000, 0x1000)  = 0
  3906      1 ls       mmap(0, 0x13000, 0x5, 0x2, 0x3, 0, 0, 0) = 0xbbbd7000
  3906      1 ls       mmap(0xbbbe7000, 0x2000, 0x3, 0x12, 0x3, 0, 0x10000, 0) 
= 0xbbbe7000
  3906      1 ls       mmap(0xbbbe9000, 0x1000, 0x3, 0x1012, 0xffffffff, 0, 0, 
0) = 0xbbbe9000
  3906      1 ls       close(0x3)                  = 0
  3906      1 ls       open("/usr/lib/libutil.so.7", 0, 0xbfbfe3f0) = 3
  3906      1 ls       __fstat30(0x3, 0xbfbfe3f0)  = 0
  3906      1 ls       mmap(0, 0x1000, 0x1, 0x1, 0x3, 0, 0, 0) = 0xbbbd6000
  3906      1 ls       munmap(0xbbbd6000, 0x1000)  = 0
  3906      1 ls       mmap(0, 0xf9000, 0x5, 0x2, 0x3, 0, 0, 0) = 0xbbade000
  3906      1 ls       mmap(0xbbbc0000, 0x7000, 0x3, 0x12, 0x3, 0, 0xe2000, 0) 
= 0xbbbc0000
  3906      1 ls       mmap(0xbbbc7000, 0x10000, 0x3, 0x1012, 0xffffffff, 0, 0, 
0) = 0xbbbc7000
  3906      1 ls       close(0x3)                  = 0
  3906      1 ls       __sysctl(0xbfbfeb04, 0x2, 0x804db40, 0xbfbfeb0c, 0, 0) = 0
  3906      1 ls       issetugid()                 = 0
  3906      1 ls       ioctl(0x1, TIOCGETA, 0xbfbfeb00) = 0
       "\^B+\0\0\a\0\0\0\0K\0\0\M-K\^E\0 
\^D\M^?\M^?\^?\^W\^U\^R\M^?\^C\^\\^Z\^Y\^Q\^S\^V\^O\^A\0\^T\M^?\0\M^V\0\0\0\M^V\0\0"
  3906      1 ls       ioctl(0x1, TIOCGWINSZ, 0xbfbfeb64) = 0
       ",\0\M^Q\0\M-{\^CM\^B"
  3906      1 ls       getuid()                    = 0
  3906      1 ls       __sysctl(0xbfbfe664, 0x2, 0xbbbcea9c, 0xbfbfe670, 0, 0) 
= 0
  3906      1 ls       __sysctl(0xbfbfe578, 0x2, 0xbbbd5780, 0xbfbfe580, 0, 0) 
= 0
  3906      1 ls       readlink("/usr/lib/libc.so.12", 0xbfbfe675, 0x400) Err#2 
ENOENT
  3906      1 ls       issetugid()                 = 0
  3906      1 ls       break(0x804dd18)            = 0
  3906      1 ls       break(0x804dd18)            = 0
  3906      1 ls       break(0x8100000)            = 0
  3906      1 ls       mmap(0, 0x100000, 0x3, 0x14001002, 0xffffffff, 0, 0, 0) 
= 0xbb900000
  3906      1 ls       __stat30("/etc/malloc.conf", 0xbfbfea54) = 0
  3906      1 ls       open("/kern", 0, 0)         = 3
  3906      1 ls       fcntl(0x3, 0x2, 0x1)        = 0
  3906      1 ls       fchdir(0x3)                 = 0
  3906      1 ls       open(".", 0x4, 0)           = 5
  3906      1 ls       fcntl(0x5, 0x2, 0x1)        = 0
  3906      1 ls       __fstat30(0x5, 0xbfbfe140)  = 0
  3906      1 ls       fstatvfs1(0x5, 0xbfbfe1a4, 0x2) = 0
  3906      1 ls       lseek(0x5, 0, 0, 0, 0x1)    = 0
  3906      1 ls       __getdents30(0x5, 0xbb90d000, 0x1000) Err#9 EBADF
  3906      1 ls       close(0x5)                  = 0
  3906      1 ls       open("/kern", 0x4, 0xbfbfea68) = 5
  3906      1 ls       fcntl(0x5, 0x2, 0x1)        = 0
  3906      1 ls       __fstat30(0x5, 0xbfbfe130)  = 0
  3906      1 ls       fstatvfs1(0x5, 0xbfbfe194, 0x2) = 0
  3906      1 ls       __fstat30(0x5, 0xbfbfe9e8)  = 0
  3906      1 ls       fchdir(0x5)                 = 0
  3906      1 ls       lseek(0x5, 0, 0, 0, 0x1)    = 0
  3906      1 ls       __getdents30(0x5, 0xbb90d000, 0x1000) Err#9 EBADF
  3906      1 ls       close(0x5)                  = 0
  3906      1 ls       fchdir(0x3)                 = 0
  3906      1 ls       fchdir(0x3)                 = 0
  3906      1 ls       close(0x3)                  = 0
  3906      1 ls       exit(0)   

However it is not persistent error.
After some tries error hides:

$ ls /kern  
boottime  copyright hostname  hz        ipsecsa   ipsecsp   loadavg   msgbuf    
pagesize  physmem   rootdev   rrootdev  time      version

>How-To-Repeat:
mount kernfs and try to read /kern directory
>Fix:
N/A



Home | Main Index | Thread Index | Old Index