Date: Fri, 5 Dec 1997 15:57:29 +0100 (CET) From: pb@fasterix.frmug.org To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: kern/5236: CPU and mem not zeroed for zombie process Message-ID: <199712051457.PAA04190@ns.eu.org> Resent-Message-ID: <199712051500.HAA02390@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 5236 >Category: kern >Synopsis: CPU and mem not zeroed for zombie process >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Dec 5 07:00:03 PST 1997 >Last-Modified: >Originator: Pierre Beyssac >Organization: none >Release: FreeBSD 2.2.5-RELEASE i386 >Environment: 486DX50, 8 megs RAM. >Description: ps shows zombie processes left with non-zero %CPU and %MEM: bash$ ps axuww USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND pb 4076 78.4 0.1 0 0 p1 Z - 0:00.00 (a.out) ... The values stay stable while the zombie is in the process table. >How-To-Repeat: Compile the following code (trivial: forks, then the child uses the CPU while the parent waits 10 minutes): ------------------------------- #include <stdio.h> int main() { switch(fork()) { case -1: perror("fork"); return 1; case 0: /* in child */ for(;;); exit(0); default: /* in parent */ sleep(600); } return 0; } ------------------------------- Run it: $ ./a.out & [1] 4075 Wait for the child to show-up with a reasonnable %CPU: $ ps axuww | grep a.out pb 4076 82.2 6.3 136 400 p1 R 3:46PM 0:05.60 ./a.out pb 4075 0.0 6.4 136 404 p1 S 3:46PM 0:00.04 ./a.out Kill the child: $ kill 4076 Look at ps again: pb 4076 78.4 0.1 0 0 p1 Z - 0:00.00 (a.out) pb 4075 0.0 0.0 136 0 p1 SW 3:46PM 0:00.04 ./a.out >Fix: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712051457.PAA04190>