Bug 71603

Summary: "systat -v" enters infinite loop
Product: Base System Reporter: dkelly <dkelly>
Component: binAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   

Description dkelly 2004-09-11 19:00:47 UTC
Apparently triggered by some sort of load condition, "systat -v" will enter an infinite loop and consume all available CPU cycles. The application accepts key input but does not act on commands. Control-C cleanly kills the runaway systat.

My Athlon 800 MHz system with same FreeBSD exhibits this problem more than my new Dell PE400SC P4-2.8G w/HT.

Hyperthreading is disabled on the P4 in the BIOS.

It sounds odd and unrelated but the P4 did not have this problem prior to upgrading to KDE 3.3.0 this past week. The Athlon still has kde-3.2.3. I usually run "systat -v" in a KDE Terminal.

I don't believe it is related to swap activity as the 1GB machine is is using very little swap.

How-To-Repeat:  I have not found a reliable means of creating the situation but it seems to happen under heavy disk activity with multiple processes using single drive, and each process is able to run the drive at its limits. Such as md5, par2, or urar.

Does not seem to matter if the drive is on parallel ATA or serial ATA.
Comment 1 Gleb Smirnoff freebsd_committer freebsd_triage 2004-10-06 06:59:19 UTC
  David,

On Sat, Sep 11, 2004 at 05:51:01PM +0000, David Kelly wrote:
D> >How-To-Repeat:
D>  I have not found a reliable means of creating the situation but it seems to happen under heavy disk activity with multiple processes using single drive, and each process is able to run the drive at its limits. Such as md5, par2, or urar.
D> 
D> Does not seem to matter if the drive is on parallel ATA or serial ATA.

can you build systat with debug flags:

# echo CFLAGS+=-g >> /etc/make.conf
# echo STRIP= >> /etc/make.conf
# cd /usr/src/usr.bin/systat
# make
# make install

Later, when you trigger this bug, try to attach to process using gdb:

# gdb `which systat` <pid of systat process>

in gdb prompt type "bt" command, and attach backtrace to this PR.

-- 
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE
Comment 2 Remko Lodder freebsd_committer freebsd_triage 2007-02-28 12:21:53 UTC
State Changed
From-To: open->closed

Feedback had been requested but never given, closing the ticket. Please 
report to me if this is still a problem and you have valuable feedback