Messages in this thread | | | Date | Mon, 27 Mar 2000 15:07:15 -0700 | From | Nicholas Leippe <> | Subject | Re: /proc fs bug? |
| |
> Date: Mon, 27 Mar 2000 11:37:55 -0700 > From: Nicholas Leippe <nickl@mycomputer.com> > To: linux-kernel@vger.rutgers.edu > Subject: /proc fs bug? > > I've noticed some odd (and annoying) behavior within the last week. > I first noticed it with 2.3.49, then again with 2.3.99pre3. > When I first boot it runs fine, but then after a while (not sure > how long) ps, qps, procinfo, kill [processname] all hang. > I can still ls dirs in /proc, but if I attempt to ls certain process > entries in /proc it will hang. I'm not sure where the bug lies > but thought I'd share it. (by hang I mean that ls hangs and ties up > the shell - I have to kill the xterm with alt-f4 or go to another > vc to work.) > > Nick > > (please cc since I'm not on the list yet) >
I've just played with it some more over ssh (it's my home box) and I've narrowed it to my ll alias which is: ll='ls -alF --color=tty'
both the -a and -F switches work fine, but with -l or --color=tty it hangs.
I checked again and procinfo does seem to work just fine. However, both ps and top hang the terminal. I tried qps - put it in the background - and it hung (display never came up) but I couldn't even kill it - 'kill -9' had zero effect - nor could bash 'kill %1' it. (strange). Also, it's not all /proc/n dirs that have trouble. When I did the straces below with ls and cat, they both worked fine on init and most others just fine.
Here's an strace of 'ls -l /proc/451':
==================================================================================================
execve("/bin/ls", ["ls", "-l", "/proc/451"], [/* 54 vars */]) = 0 brk(0) = 0x80549b0 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=24761, ...}) = 0 mmap(0, 24761, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40013000 close(4) = 0 open("/lib/libc.so.6", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0755, st_size=4118299, ...}) = 0 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\250\202"..., 4096) = 4096 mmap(0, 993500, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x4001a000 mprotect(0x40105000, 30940, PROT_NONE) = 0 mmap(0x40105000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xea000) = 0x40105000 mmap(0x40109000, 14556, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40109000 close(4) = 0 mprotect(0x4001a000, 962560, PROT_READ|PROT_WRITE) = 0 mprotect(0x4001a000, 962560, PROT_READ|PROT_EXEC) = 0 munmap(0x40013000, 24761) = 0 personality(0 /* PER_??? */) = 0 getpid() = 1454 brk(0) = 0x80549b0 brk(0x8054b50) = 0x8054b50 brk(0x8055000) = 0x8055000 open("/usr/share/locale/locale.alias", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=2174, ...}) = 0 mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40013000 read(4, "# Locale name alias data base.\n#"..., 4096) = 2174 brk(0x8056000) = 0x8056000 read(4, "", 4096) = 0 close(4) = 0 munmap(0x40013000, 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) = 4 fstat(4, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 close(4) = 0 open("/usr/share/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=44, ...}) = 0 mmap(0, 44, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40013000 close(4) = 0 open("/usr/share/locale/en_US/LC_MONETARY", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=93, ...}) = 0 mmap(0, 93, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40014000 close(4) = 0 open("/usr/share/locale/en_US/LC_COLLATE", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=29970, ...}) = 0 mmap(0, 29970, PROT_READ, MAP_PRIVATE, 4, 0) = 0x4010d000 close(4) = 0 open("/usr/share/locale/en_US/LC_TIME", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=508, ...}) = 0 mmap(0, 508, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40015000 close(4) = 0 open("/usr/share/locale/en_US/LC_NUMERIC", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=27, ...}) = 0 mmap(0, 27, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40016000 close(4) = 0 open("/usr/share/locale/en_US/LC_CTYPE", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=10428, ...}) = 0 mmap(0, 10428, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40017000 close(4) = 0 time(NULL) = 954194265 ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0 ioctl(1, TIOCGWINSZ, {ws_row=116, ws_col=135, ws_xpixel=135, ws_ypixel=0}) = 0 brk(0x8059000) = 0x8059000 lstat("/proc/451", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 open("/dev/null", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = -1 ENOTDIR (Not a directory) open("/proc/451", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 4 fstat(4, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0 fcntl(4, F_SETFD, FD_CLOEXEC) = 0 brk(0x805b000) = 0x805b000 getdents(4, /* 14 entries */, 3391) = 232 lstat("/proc/451/fd", {st_mode=S_IFDIR|0500, st_size=0, ...}) = 0 lstat("/proc/451/environ", {st_mode=S_IFREG|0400, st_size=0, ...}) = 0 lstat("/proc/451/status", {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 lstat("/proc/451/cmdline", {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 lstat("/proc/451/stat", {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 lstat("/proc/451/statm", {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 lstat("/proc/451/cpu", {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 lstat("/proc/451/maps", {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 lstat("/proc/451/mem", {st_mode=S_IFREG|0600, st_size=0, ...}) = 0 lstat("/proc/451/cwd", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0 readlink("/proc/451/cwd",
======================================================================================
if I try to cat /proc/451/cmdline it also hangs, here's an strace of that:
execve("/bin/cat", ["cat", "/proc/451/cmdline"], [/* 54 vars */]) = 0 brk(0) = 0x804b144 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=24761, ...}) = 0 mmap(0, 24761, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40013000 close(4) = 0 open("/lib/libc.so.6", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0755, st_size=4118299, ...}) = 0 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\250\202"..., 4096) = 4096 mmap(0, 993500, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x4001a000 mprotect(0x40105000, 30940, PROT_NONE) = 0 mmap(0x40105000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xea000) = 0x40105000 mmap(0x40109000, 14556, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40109000 close(4) = 0 mprotect(0x4001a000, 962560, PROT_READ|PROT_WRITE) = 0 mprotect(0x4001a000, 962560, PROT_READ|PROT_EXEC) = 0 munmap(0x40013000, 24761) = 0 personality(0 /* PER_??? */) = 0 getpid() = 1495 brk(0) = 0x804b144 brk(0x804b2e4) = 0x804b2e4 brk(0x804c000) = 0x804c000 open("/usr/share/locale/locale.alias", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=2174, ...}) = 0 mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40013000 read(4, "# Locale name alias data base.\n#"..., 4096) = 2174 read(4, "", 4096) = 0 close(4) = 0 munmap(0x40013000, 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) = 4 fstat(4, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 close(4) = 0 open("/usr/share/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=44, ...}) = 0 mmap(0, 44, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40013000 close(4) = 0 open("/usr/share/locale/en_US/LC_MONETARY", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=93, ...}) = 0 mmap(0, 93, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40014000 close(4) = 0 open("/usr/share/locale/en_US/LC_COLLATE", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=29970, ...}) = 0 mmap(0, 29970, PROT_READ, MAP_PRIVATE, 4, 0) = 0x4010d000 close(4) = 0 brk(0x804d000) = 0x804d000 open("/usr/share/locale/en_US/LC_TIME", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=508, ...}) = 0 mmap(0, 508, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40015000 close(4) = 0 open("/usr/share/locale/en_US/LC_NUMERIC", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=27, ...}) = 0 mmap(0, 27, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40016000 close(4) = 0 open("/usr/share/locale/en_US/LC_CTYPE", O_RDONLY) = 4 fstat(4, {st_mode=S_IFREG|0644, st_size=10428, ...}) = 0 mmap(0, 10428, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40017000 close(4) = 0 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 11), ...}) = 0 open("/proc/451/cmdline", O_RDONLY|O_LARGEFILE) = 4 fstat(4, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 brk(0x804f000) = 0x804f000 read(4,
==========================================================================================
Hope this helps...
Nick
(and please remember to cc me since I'm not on the list yet)
- 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/
| |