[BusyBox 0000379]: Control-C (SIGINT) is ignored or creates zombie processes

bugs at busybox.net bugs at busybox.net
Thu Feb 14 12:37:29 UTC 2008


The following issue has been CLOSED 
====================================================================== 
http://busybox.net/bugs/view.php?id=379 
====================================================================== 
Reported By:                swth
Assigned To:                BusyBox
====================================================================== 
Project:                    BusyBox
Issue ID:                   379
Category:                   Other
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     closed
Resolution:                 open
Fixed in Version:           
====================================================================== 
Date Submitted:             08-11-2005 21:34 PDT
Last Modified:              02-14-2008 04:37 PST
====================================================================== 
Summary:                    Control-C (SIGINT) is ignored or creates zombie
processes
Description: 
1) Control-C (SIGINT) is ignored

During system initialization (inittab - script invoked by
::sysinit:/etc/init.d/rcS) I acquire information from a file in the file
system.  If the expected file is not there, the script waits for it. 
During development the file is never there.  Thus, I use Control-C to kill
that script.  Unfortunately, Control-C does not terminate the script. 
Why?

2) Control-C (SIGINT) creates zombie process

After removing the above mentioned startup script, initialization of
system completes and a login prompt is presented to the user.  System
seems fine.  However, any running program terminated by a Control-C hang
indefinitely.  Switching to another terminal (<ctrl>-<alt>-<f2>) and then
executing the "ps" command yields a zombie process named the same a the
killed process.  Why?
====================================================================== 

---------------------------------------------------------------------- 
 vda - 09-29-06 16:58  
---------------------------------------------------------------------- 
Point (1) - correct behavior. User shouldn't be able to interrupt boot
process just because he happens to have access to console's keyboard.

Point (2) is not ok. Which init process do you use? Add print in the
relevant place(s) for debugging that...

        /* Now run the looping stuff for the rest of forever */
        while (1) {
...
                wpid = wait(NULL);
...
        } 

---------------------------------------------------------------------- 
 vda - 02-14-08 04:37  
---------------------------------------------------------------------- 
I beileve "no reaping of children while sysinit actions are run" is fixed
in current svn:

static void waitfor(pid_t pid)
{
        /* waitfor(run(x)): protect against failed fork inside run() */
        if (pid <= 0)
                return;
        /* Wait for any child (prevent zombies from exiting orphaned
processes)
         * but exit the loop only when specified one has exited. */
        while (wait(NULL) != pid)
                continue;
} 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
08-11-05 21:34  swth           New Issue                                    
08-11-05 21:34  swth           Status                   new => assigned     
08-11-05 21:34  swth           Assigned To               => BusyBox         
08-11-05 21:34  swth           File Added: configs.tar.gz                    
09-29-06 16:58  vda            Note Added: 0001659                          
02-14-08 04:37  vda            Status                   assigned => closed  
02-14-08 04:37  vda            Note Added: 0004644                          
======================================================================




More information about the busybox-cvs mailing list