Subject: Re: Reading file causes process to hang on getblk
To: Dave Huang <khym@bga.com>
From: David Brownlee <abs@anim.dreamworks.com>
List: current-users
Date: 07/05/1997 11:02:02
Two small ideas...
o Boot to single user then run 'fsck -f' just to confirm the
filesystem is ok.
o Try 'dd' on the raw partition (again, to see if it is a
filesystem problem).
- Thought for the day... "I miss my dog"
On Sat, 5 Jul 1997, Dave Huang wrote:
> Hi there... I've got a rather annoying problem :) I've got this file
> in my directory, and whenever I try to read from it, the process doing
> the read will just hang. A "ps l" shows the process with a WCHAN of
> getblk, and a ^T shows the same thing. When this happens, trying to
> "ls" the directory the file is in will also hang. I think even an "ls"
> in the parent directory will hang too. "shutdown -r now" hangs after
> the "syncing disks..." message, and if I break into ddb and do a "ps",
> I see that the process trying to read the file is still hanging
> around.
>
> The problem is 100% repeatable... I've tried running gzip, cat, cp,
> dd, and cksum on the file, and they all hang. However, I _can_ run
> "file" on it, so it looks like it's only having trouble with a certain
> block of the file:
>
> dd if=frame.01705.ppm of=/dev/null count=48 works just fine, but
> dd if=frame.01705.ppm of=/dev/null count=49 will hang.
>
> I don't get any kernel messages, and my drives are fine, so it's not a
> bad block on the hard drive or anything...
>
> The filesystem is on a ccd, made up of two partitions striped
> together. The directory the file's in has 2004 files in it, which
> probably makes it the biggest directory I have.
>
> I compiled a kernel with debugging symbols, then booted into single
> user mode, catted the file, then broke into ddb and made it give me a
> crash dump, so I've got a dump and debugging kernel, but I don't know
> what to do with it :) Assuming I did this correctly, here's a stack
> trace of the process:
>
> #0 mi_switch () at ../../../../kern/kern_synch.c:615
> #1 0xf8119c51 in bpendtsleep ()
> #2 0xf812e32b in getblk (vp=0xf8891180, blkno=3, size=8192, slpflag=0,
> slptimeo=0) at ../../../../kern/vfs_bio.c:553
> #3 0xf812ee7c in cluster_read (vp=0xf8891180, filesize=230415, lblkno=3,
> size=8192, cred=0xffffffff, bpp=0xfcc93eb0)
> at ../../../../kern/vfs_cluster.c:133
> #4 0xf8196f63 in ffs_read (v=0x0) at ../../../../ufs/ufs/ufs_readwrite.c:126
> #5 0xf813732f in vn_read (fp=0xf889b600, uio=0xfcc93f20, cred=0xf87b4300)
> at ../../../../sys/vnode_if.h:269
> #6 0xf811e6e3 in sys_read (p=0xf889cd00, v=0xfcc93f88, retval=0xfcc93f80)
> at ../../../../kern/sys_generic.c:112
> #7 0xf81aeb58 in syscall (frame={tf_es = 31, tf_ds = 31, tf_edi = 1,
> tf_esi = 3, tf_ebp = -138421800, tf_ebx = -138421692, tf_edx = 53244,
> tf_ecx = 69632, tf_eax = 3, tf_trapno = 3, tf_err = 2, tf_eip = 40827,
> tf_cs = 23, tf_eflags = 518, tf_esp = -138421924, tf_ss = 31,
> tf_vm86_es = 0, tf_vm86_ds = 0, tf_vm86_fs = 0, tf_vm86_gs = 0})
> at ../../../../arch/i386/i386/trap.c:623
>
> Anyone have some ideas and/or things for me to try?
>
> My system's a Pentium, running a July 4 -current. My previous kernel
> (the one I was using when I first saw the problem) is from June 30.
> Kernel config file and dmesg stuff follow:
>
> include "arch/i386/conf/std.i386"
>
> options I586_CPU # CPU classes; at least one is REQUIRED
> options VM86 # Virtual 8086 emulation
>
> #options BIOSEXTMEM=80896 # size of extended memory
>
> options DUMMY_NOPS # speed hack; recommended
> options XSERVER,UCONSOLE
> options INSECURE # insecure; allow /dev/mem writing for X
>
> maxusers 32 # estimated number of users
> options RTC_OFFSET=300 # hardware clock is this many mins. west of GMT
>
> options DDB # in-kernel debugger
> makeoptions DEBUG="-g" # compile full symbol table
> options DIAGNOSTIC # internal consistency checks
> #options DEBUG # internal debug messages
> options KTRACE # system call tracing, a la ktrace(1)
> #options AUDIO_DEBUG
>
> options SYSVMSG # System V-like message queues
> options SYSVSEM # System V-like semaphores
> options SYSVSHM # System V-like memory sharing
> #options SHMMAXPGS=1024 # 1024 pages is the default
>
> options COMPAT_NOMID # compatibility with 386BSD, BSDI, NetBSD 0.8,
> options COMPAT_09 # NetBSD 0.9,
> options COMPAT_10 # NetBSD 1.0,
> options COMPAT_11 # NetBSD 1.1,
> options COMPAT_12 # NetBSD 1.2,
> options COMPAT_43 # and 4.3BSD
> options TCP_COMPAT_42 # TCP bug compatibility with 4.2BSD
>
> options COMPAT_LINUX # binary compatibility with Linux
> options COMPAT_FREEBSD # binary compatibility with FreeBSD
>
> options EXEC_ELF32 # 32-bit ELF executables (SVR4, Linux)
>
> options USER_LDT # user-settable LDT; used by WINE
> options LKM # loadable kernel modules
>
> file-system FFS # UFS
> #file-system MFS # memory file system
> file-system NFS # Network File System client
> #file-system CD9660 # ISO 9660 + Rock Ridge file system
> #file-system MSDOSFS # MS-DOS file system
> file-system FDESC # /dev/fd
> file-system KERNFS # /kern
> file-system PROCFS # /proc
> file-system UNION # union file system
>
> options NFSSERVER # Network File System server
> options FIFO # FIFOs; RECOMMENDED
>
> options GATEWAY # packet forwarding
> options INET # IP + ICMP + TCP + UDP
> options NETATALK # AppleTalk
> options PPP_DEFLATE
> #options PFIL_HOOKS # pfil(9) packet filter hooks (Required
> # if you enable the pseudo-device ipfilter)
>
> config netbsd root on sd0a type ffs dumps on sd1b
>
> #options SCSI_DELAY=10
> options PCIVERBOSE
>
> #options SCSIDEBUG
> #options CDROM_ASYNC
>
> mainbus0 at root
>
> pci0 at mainbus0 bus ?
> #eisa0 at mainbus0
>
> pchb* at pci? dev ? function ? # PCI-Host bridges
> pcib* at pci? dev ? function ? # PCI-ISA bridges
>
> isa* at pcib? # ISA on PCI-ISA bridge
> isa* at mainbus0 # all other ISA
>
> apm0 at mainbus0 # Advanced power management
>
> #ppb* at pci? dev ? function ? # PCI-PCI bridges
> #pci* at ppb? bus ?
>
> npx0 at isa? port 0xf0 irq 13 # math coprocessor
>
> #pc0 at isa? port 0x60 irq 1 # generic PC console device
> vt0 at isa? port 0x60 irq 1
>
> com0 at isa? port 0x3f8 irq 4 # standard PC serial ports
> com1 at isa? port 0x2f8 irq 3
> com2 at isa? port 0x3e8 irq 7
> com3 at isa? port 0x2e8 irq 9
>
> #lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports
>
> pms0 at pckbd? irq 12 # PS/2 auxiliary port mouse
>
> ncr* at pci? dev ? function ? # NCR 538XX SCSI controllers
> scsibus* at ncr?
>
> sd0 at scsibus? target 0 lun 0
> sd1 at scsibus? target 1 lun 0
> sd* at scsibus? target ? lun ? # SCSI disk drives
> st* at scsibus? target ? lun ? # SCSI tape drives
> cd* at scsibus? target ? lun ? # SCSI CD-ROM drives
> uk* at scsibus? target ? lun ? # SCSI unknown
>
> fdc0 at isa? port 0x3f0 irq 6 drq 2 # standard PC floppy controllers
> #fdc1 at isa? port 0x370 irq ? drq ?
> fd* at fdc? drive ?
>
> wdc0 at isa? port 0x1f0 irq 14 # ST506, ESDI, and IDE controllers
> #wdc1 at isa? port 0x170 irq ?
> wd0 at wdc0 drive 0
>
> sb0 at isa? port 0x220 irq 5 drq 1 # SoundBlaster
>
> ep* at pci? dev ? function ? # 3C590 ethernet cards
>
> spkr0 at pckbd? port 0x61 # speaker
>
> joy0 at isa? port 0x201
>
> pseudo-device loop 1 # network loopback
> pseudo-device bpfilter 16 # packet filter
> pseudo-device sl 2 # CSLIP
> pseudo-device ppp 2 # PPP
> #pseudo-device tun 2 # network tunnelling over tty
> #pseudo-device ipfilter # ip filter
>
> pseudo-device pty 32 # pseudo-terminals
> pseudo-device vnd 4 # paging to files
>
> pseudo-device ccd 2 # concatenated disk devices
>
>
> NetBSD 1.2G (SPIFF) #58: Sat Jul 5 05:00:30 CDT 1997
> khym@dahan.metonymy.com:/usr/src.local/sys/arch/i386/compile/SPIFF
> cpu0: family 5 model 2 step c
> cpu0: Intel Pentium (P54C) (586-class)
> real mem = 66711552
> avail mem = 60567552
> using 839 buffers containing 3436544 bytes of memory
> mainbus0 (root)
> pci0 at mainbus0 bus 0: configuration mode 1
> Intel 82439 (Triton II) TXC Host Bridge (host bridge, revision 0x03) at pci0 dev 0 function 0 not configured
> pcib0 at pci0 dev 7 function 0
> pcib0: Intel 82371SB (Triton II) PCI-ISA Bridge (rev. 0x01)
> Intel 82371SB (Triton II) IDE controller (IDE mass storage, interface 0x80) at pci0 dev 7 function 1 not configured
> ep0 at pci0 dev 10 function 0: 3Com 3C595 Ethernet
> ep0: MAC address 00:a0:24:01:de:fa
> ep0: 64KB word-wide FIFO, 3:1 Rx:Tx split, utp/100-TX default utp
> ep0: interrupting at irq 15
> ncr0 at pci0 dev 11 function 0: NCR 53c810 SCSI
> ncr0: interrupting at irq 10
> ncr0: restart (scsi reset).
> scsibus0 at ncr0: 8 targets
> sd0 at scsibus0 targ 0 lun 0: <Quantum, VP32210, L915> SCSI2 0/direct fixed
> sd0: sd0(ncr0:0:0): 10.0 MB/s (100 ns, offset 8)
> 2103MB, 4243 cyl, 8 head, 126 sec, 512 bytes/sec x 4308352 sectors
> sd1 at scsibus0 targ 1 lun 0: <Quantum, XP32150W, L915> SCSI2 0/direct fixed
> sd1: sd1(ncr0:1:0): 10.0 MB/s (100 ns, offset 8)
> 2151MB, 3907 cyl, 10 head, 112 sec, 512 bytes/sec x 4406960 sectors
> cd0 at scsibus0 targ 2 lun 0: <TOSHIBA, CD-ROM XM-5301TA, 1895> SCSI2 5/cdrom removable
> probe(ncr0:2:1): 4.0 MB/s (250 ns, offset 8)
> sd2 at scsibus0 targ 3 lun 0: <Quantum, XP34300W, L915> SCSI2 0/direct fixed
> sd2: sd2(ncr0:3:0): 10.0 MB/s (100 ns, offset 8)
> 4101MB, 3907 cyl, 20 head, 107 sec, 512 bytes/sec x 8399520 sectors
> Matrox MGA Millenium 2064W ("Storm") (VGA display, revision 0x01) at pci0 dev 12 function 0 not configured
> isa0 at pcib0
> com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
> com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
> com2 at isa0 port 0x3e8-0x3ef irq 7: ns8250 or ns16450, no fifo
> com3 at isa0 port 0x2e8-0x2ef irq 9: ns8250 or ns16450, no fifo
> sb0 at isa0 port 0x220-0x237 irq 5 drq 1: dsp v4.13
> npx0 at isa0 port 0xf0-0xff: using exception 16
> vt0 at isa0 port 0x60-0x6f irq 1: generic, 80 col, color, 8 scr, mf2-kbd, [R3.32]
> pms0 at vt0 irq 12
> spkr0 at vt0 port 0x61
> fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
> fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
> fd1 at fdc0 drive 1: 1.2MB 80 cyl, 2 head, 15 sec
> joy0 at isa0 port 0x201
> joy0: joystick not connected
> apm0 at mainbus0: Power Management spec V1.1
> apm0: A/C state: on
> apm0: battery charge state: no battery
> biomask 440 netmask 8440 ttymask 9442
> boot device: sd0
> root on sd0a dumps on sd1b
>
> Name: Dave Huang | Mammal, mammal / their names are called /
> INet: khym@bga.com | they raise a paw / the bat, the cat /
> FurryMUCK: Dahan | dolphin and dog / koala bear and hog -- TMBG
> Dahan: Hani G Y+C 21 Y++ L+++ W- C++ T++ A+ E+ S++ V++ F- Q+++ P+ B+ PA+ PL++
>