Subject: Re: "Bad address" reading files (was Re: Problems with very large files?)
To: None <current-users@netbsd.org>
From: Bernd Ernesti <netbsd@arresum.inka.de>
List: current-users
Date: 02/26/2001 09:08:37
On Mon Feb 26 02:10:34 2001, Dave Huang wrote:
>
> On Sun, 25 Feb 2001, Jaromír Dolecek wrote:
> > This is one of remaining issues with UBC on -current IIRC.
> > It's definitely a known bug.
>
> Oh, okay :) Not a big problem... a mostly unrelated question though: The
I thought that the 4GB problem was fixed in the last 1-2 weeks. So maybe a
kernel update would fix this problem.
> file is an image of a friend's hard drive that Windows (or something)
> managed to corrupt. I fixed up the BPB in the boot sector, vnconfiged
> it, and mounted the partition (it's a FAT32 partition), then copied what
> I could off of it. Most of the files copied fine, but a few give me a
> "Bad address" error. For example:
>
> yerfable /tmp# ktrace cat /mnt/SLSLO
> cat: /mnt/SLSLO: Bad address
> yerfable /tmp# kdump
> [ stuff deleted ]
> 14609 cat CALL read(0x3,0x120118000,0x10000)
> 14609 cat RET read -1 errno 14 Bad address
I get the same problem when I mount a nfs filesystem from a remote machine via amd.
11593 cat CALL open(0xbfbfd72c,0,0)
11593 cat NAMI "traceroute.c"
11593 cat RET open 3
11593 cat CALL __fstat13(0x1,0xbfbfd530)
11593 cat RET __fstat13 0
11593 cat CALL break(0x8060000)
11593 cat RET break 0
11593 cat CALL break(0x8070000)
11593 cat RET break 0
11593 cat CALL read(0x3,0x8060000,0x10000)
11593 cat RET read -1 errno 14 Bad address
I have no problem to cat a smaller file or when I mount the filesystem directly
by mount_nfs and not by amd.
Hmmm, I think it works for files <3897 bytes.
> dd count=1 if=/dev/zero of=t bs=3897
1+0 records in
1+0 records out
3897 bytes transferred in 1 secs (3897 bytes/sec)
> cat t
cat: t: Bad address
> dd count=1 if=/dev/zero of=t bs=3896
1+0 records in
1+0 records out
3896 bytes transferred in 1 secs (3896 bytes/sec)
> cat t
>
I use at the moment a kernel based on current sources from the 19th February 2001.
Bernd