Home
| Calendar
| Mail Lists
| List Archives
| Desktop SIG
| Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings Linux Cafe | Meeting Notes | Linux Links | Bling | About BLU |
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 | |
We also thank MIT for the use of their facilities. |