Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Don Cohen <don-sourceforge-xxz <at> isis.cs3-inc.com>
Subject: infinite loops inside clisp
Newsgroups: gmane.lisp.clisp.general
Date: Friday 13th June 2008 23:58:41 UTC (over 9 years ago)
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 

 ...
====

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
 
CD: 3ms