Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive


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

large file problem in rh7.1



Ken Gosier <ken at kg293.net> writes:

> write(4, "\23.\tN\n\16!\6\253\270T\262\30\241\325]\363\362\307\f"...,
> 4096) = 4096
> read(3, 0xbfffe420, 4096)               = -1 EIO (Input/output error)
> 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, "cp: ", 4cp: )                     = 4
> write(2, "reading `ali.mp3\'", 17reading `ali.mp3')      = 17
> 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
> close(4)                                = 0
> close(3)                                = 0
> _exit(1)                                = ?
> 
> (Preceded by many more read/write statements.) The sysadmin seemed to
> think that some char was somehow sending a message to open the file
> /usr/share/locale/en_US/LC_MESSAGES/fileutils.mo. I don't have this file,
> so things were getting confused.

No, that's not the core problem.  The read already failed with EIO, so
'cp' (er, libc) is trying to find the printable error message that
maps to EIO.  It does this by trying to look in the locale-specific
files (fileutils.mo) first.  If that doesn't exist (which it does not
on your system) it will try a few other locations until it gives up
and uses the internal string reprentation, "Input/output error".

> So like I said, I've been able to get out all the stuff I need from this
> file, so it's mostly academic interest at this point. Just kind of
> curious. Many thanks to everyone for all the help and expertise--

Well, the error is coming from mm/filemap.c:do_generic_file_read(),
in particular this code block:

			if (Page_Uptodate(page))
				goto page_ok;

			/* Again, try some read-ahead while waiting for the page to finish.. */
			generic_file_readahead(reada_ok, filp, inode, page);
			wait_on_page(page);
			if (Page_Uptodate(page))
				goto page_ok;
			error = -EIO;

(this code is from RedHat's 2.4.9-21 kernel, YMMV).  Basically what's
going on is that it tries to see if the page is up to date.  If it's
not, then it performs some readahead and waits on the papge.  If the
page isn't ready when it gets woken up, it returns an I/O Error.

So, that's what you are seeing.  A better question is: why?  I don't
know.

-derek

-- 
       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available




BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org