From: <don...@is...> - 2008-06-14 00:07:00
|
I don't know whether this happens in the most recent versions but now that I've seen it in two different versions I figure there's a good chance. The first case is readily reproducible, but comes from 2.35. A windows machine ssh's to a linux machine and runs clisp. The windows machine crashes and the lisp process starts using 100% of the cpu. The last time this occurred I ran strace on it for a few seconds before I killed it. The results look like this ==== mmap2(0x67cec000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x67cec000 mmap2(0x67ceb000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x67ceb000 ... mmap2(0x67cb3000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x67cb3000 rt_sigprocmask(SIG_BLOCK, [WINCH], NULL, 8) = 0 getrusage(RUSAGE_SELF, {ru_utime={25248, 125909}, ru_stime={2373, 560338}, ...}) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- mprotect(0x207fe000, 4096, PROT_READ|PROT_WRITE) = 0 sigreturn() = ? (mask now [WINCH]) --- SIGSEGV (Segmentation fault) @ 0 (0) --- mprotect(0x207f5000, 4096, PROT_READ|PROT_WRITE) = 0 sigreturn() = ? (mask now [WINCH]) ... --- SIGSEGV (Segmentation fault) @ 0 (0) --- mprotect(0x206e1000, 4096, PROT_READ|PROT_WRITE) = 0 sigreturn() = ? (mask now [WINCH]) mprotect(0x206e1000, 4096, PROT_READ) = 0 mprotect(0x206e3000, 4096, PROT_READ) = 0 mprotect(0x206e5000, 4096, PROT_READ) = 0 ... mprotect(0x6812e000, 4096, PROT_READ) = 0 mprotect(0x68134000, 4096, PROT_READ) = 0 munmap(0x21957000, 139264) = 0 munmap(0x67cb3000, 4542464) = 0 getrusage(RUSAGE_SELF, {ru_utime={25248, 157911}, ru_stime={2373, 572339}, ...})\ = 0 rt_sigprocmask(SIG_UNBLOCK, [WINCH], NULL, 8) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- mprotect(0x6812b000, 4096, PROT_READ|PROT_WRITE) = 0 sigreturn() = ? (mask now []) mmap2(0x68107000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x68107000 --- SIGSEGV (Segmentation fault) @ 0 (0) --- mprotect(0x207f2000, 4096, PROT_READ|PROT_WRITE) = 0 sigreturn() = ? (mask now []) --- SIGSEGV (Segmentation fault) @ 0 (0) --- ... --- SIGSEGV (Segmentation fault) @ 0 (0) --- mprotect(0x207f6000, 4096, PROT_READ|PROT_WRITE) = 0 sigreturn() = ? (mask now []) mmap2(0x68105000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x68105000 mmap2(0x68104000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x68104000 mmap2(0x68103000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x68103000 ... ==== The second case I've only seen once. This is in 2.39. I don't know what the cause was but I again ran strace before killing it and got this: ==== setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, {it_interval={0, 0}, it_value={0, 0}}) = 0 mmap2(0x20a45000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x20a45000 setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, {it_interval={0, 0}, it_value={0, 0}}) = 0 setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, {it_interval={0, 0}, it_value={0, 0}}) = 0 setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, {it_interval={0, 0}, it_value={0, 0}}) = 0 ... setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, {it_interval={0, 0}, it_value={0, 0}}) = 0 rt_sigprocmask(SIG_BLOCK, [WINCH], NULL, 8) = 0 getrusage(RUSAGE_SELF, {ru_utime={17396, 647222}, ru_stime={187, 67691}, ...}) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- mprotect(0x206cf000, 4096, PROT_READ|PROT_WRITE) = 0 sigreturn() = ? (mask now [WINCH]) --- SIGSEGV (Segmentation fault) @ 0 (0) --- mprotect(0x206cd000, 4096, PROT_READ|PROT_WRITE) = 0 sigreturn() = ? (mask now [WINCH]) --- SIGSEGV (Segmentation fault) @ 0 (0) --- ... --- SIGSEGV (Segmentation fault) @ 0 (0) --- mprotect(0x205bc000, 4096, PROT_READ|PROT_WRITE) = 0 sigreturn() = ? (mask now [WINCH]) mprotect(0x205a6000, 4096, PROT_READ) = 0 mprotect(0x205bc000, 4096, PROT_READ) = 0 mprotect(0x205be000, 4096, PROT_READ) = 0 ... mprotect(0x206cf000, 4096, PROT_READ) = 0 munmap(0x20a2e000, 1110016) = 0 munmap(0x67ee0000, 208896) = 0 getrusage(RUSAGE_SELF, {ru_utime={17396, 687225}, ru_stime={187, 67691}, ...}) = 0 rt_sigprocmask(SIG_UNBLOCK, [WINCH], NULL, 8) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- mprotect(0x205a6000, 4096, PROT_READ|PROT_WRITE) = 0 sigreturn() = ? (mask now []) --- SIGSEGV (Segmentation fault) @ 0 (0) --- mprotect(0x20660000, 4096, PROT_READ|PROT_WRITE) = 0 sigreturn() = ? (mask now []) --- SIGSEGV (Segmentation fault) @ 0 (0) --- mprotect(0x20671000, 4096, PROT_READ|PROT_WRITE) = 0 sigreturn() = ? (mask now []) setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, {it_interval={0, 0}, it_value={0, 0}}) = 0 setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, {it_interval={0, 0}, it_value={0, 0}}) = 0 ... ==== |