2.3.48: ext2 strange problems. can't remove files.

From: nabbasi@pacbell.net
Date: Thu Mar 09 2000 - 13:56:11 EST


 
Hello,

I ftp'ed some large tar files (binary transfer) to my Linux box.

Extracted files. Now some of the files extraced (very few), seem
to be in strange state. I can't delete them, can't stat them,
and can not remove the directory they are in. less than 1% of
the files extraced seem to be hosed like this. Any idea
how to force remove these files? This is Suse 6.3, but I have
upgraded kernel to 2.3.48.

I'll next run fsck on this disk to see if it will help. (even
though I get no error when I mount it).

the disk is a maxtor 34 GB disk, running off a promise ata
66 IDE card. This is the disk (/dev/hdh1) :

hdh: Maxtor 93652U8, 34837MB w/2048kB Cache, CHS=70780/16/63
hdh: [PTBL] [4441/255/63] hdh1

no problem using the disk, other than the probkem with
some of these files being corrupted somehow..

This is the dmesg output, followed by examples of trying to
remove the file.

------ dmesg --------

EXT2-fs error (device ide3(34,65)): ext2_free_blocks: Freeing blocks not
in datazone - block = 2175008768, count = 1
EXT2-fs error (device ide3(34,65)): ext2_free_blocks: Freeing blocks not
in datazone - block = 32768000, count = 1
EXT2-fs error (device ide3(34,65)): ext2_free_blocks: Freeing blocks not
in datazone - block = 372244480, count = 1
attempt to access beyond end of device
22:41: rw=0, want=2052849668, limit=35664268
EXT2-fs error (device ide3(34,65)): trunc_indirect: Read failure,
inode=2550916, block=-1634271232
attempt to access beyond end of device
22:41: rw=0, want=1662779396, limit=35664268
EXT2-fs error (device ide3(34,65)): trunc_dindirect: Read failure,
inode=2550916, block=952565760
attempt to access beyond end of device
22:41: rw=0, want=1745879044, limit=35664268
EXT2-fs error (device ide3(34,65)): trunc_tindirect: Read failure,
inode=2550916, block=436469760
 
------------------------

now trying to rm the file....

lib/html > uname -a
Linux linux 2.3.48 #3 SMP Mon Mar 6 02:58:48 PST 2000 i686 unknown

lib/html > ls -l
ls: headparser.html: Input/output error
total 0

lib/html > rm headparser.html
rm: cannot remove `headparser.html': Input/output error

lib/html > cd ..

lib > rm -rf html
rm: cannot remove `html/headparser.html': Input/output error
rm: cannot remove directory `html': Directory not empty

lib > ls html
headparser.html

lib > du html
du: html/headparser.html: Input/output error
4 html

lib > rm html/headparser.html
rm: cannot remove `html/headparser.html': Input/output error
 

This is the strace output of the above command:

nabbasi@linux:~/sfu/sfub2rp/perl/html/site/lib > strace rm
html/headparser.html
execve("/bin/rm", ["rm", "html/headparser.html"], [/* 66 vars */]) = 0
brk(0) = 0x804dac4
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=55194, ...}) = 0
mmap(NULL, 55194, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40015000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=4223971, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\204"...,
4096) = 4096
mmap(NULL, 1025596, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40023000
mprotect(0x40116000, 30268, PROT_NONE) = 0
mmap(0x40116000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0xf2000) = 0x40116000
mmap(0x4011a000, 13884, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4011a000
close(3) = 0
mprotect(0x40023000, 995328, PROT_READ|PROT_WRITE) = 0
mprotect(0x40023000, 995328, PROT_READ|PROT_EXEC) = 0
munmap(0x40015000, 55194) = 0
personality(PER_LINUX) = 0
getpid() = 593
brk(0) = 0x804dac4
brk(0x804dafc) = 0x804dafc
brk(0x804e000) = 0x804e000
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2174, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x40015000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2174
brk(0x804f000) = 0x804f000
read(3, "", 4096) = 0
close(3) = 0
munmap(0x40015000, 4096) = 0
open("/usr/share/i18n/locale.alias", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/share/locale/en_US/LC_MESSAGES", O_RDONLY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
close(3) = 0
open("/usr/share/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) =
3
fstat(3, {st_mode=S_IFREG|0644, st_size=44, ...}) = 0
mmap(NULL, 44, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40015000
close(3) = 0
open("/usr/share/locale/en_US/LC_MONETARY", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=93, ...}) = 0
mmap(NULL, 93, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40016000
close(3) = 0
open("/usr/share/locale/en_US/LC_COLLATE", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=29970, ...}) = 0
mmap(NULL, 29970, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40017000
close(3) = 0
open("/usr/share/locale/en_US/LC_TIME", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=508, ...}) = 0
mmap(NULL, 508, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001f000
close(3) = 0
open("/usr/share/locale/en_US/LC_NUMERIC", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=27, ...}) = 0
mmap(NULL, 27, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40020000
close(3) = 0
open("/usr/share/locale/en_US/LC_CTYPE", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=10428, ...}) = 0
mmap(NULL, 10428, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4011e000
close(3) = 0
ioctl(0, TCGETS, {B9600 opost isig icanon echo ...}) = 0
brk(0x8050000) = 0x8050000
brk(0x8051000) = 0x8051000
lstat("html/headparser.html", 0xbffff350) = -1 EIO (Input/output error)
brk(0x8052000) = 0x8052000
open("/usr/share/locale/en_US/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
write(2, "rm: ", 4rm: ) = 4
write(2, "cannot remove `html/headparser.h"..., 36cannot remove
`html/headparser.html') = 36
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT
(No such file or directory)
write(2, ": Input/output error", 20: Input/output error) = 20
write(2, "\n", 1
) = 1
_exit(1) = ?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Mar 15 2000 - 21:00:16 EST