BusyBox Bug and Patch Tracking
BusyBox
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0000379 [BusyBox] Other minor always 08-11-05 21:34 02-14-08 04:37
Reporter swth View Status public  
Assigned To BusyBox
Priority normal Resolution fixed  
Status closed   Product Version 1.00
Summary 0000379: 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?
Additional Information The attached file contains my configuration files:

buildroot.config
busybox.config
uClibc.config

Please let me know if I can provide any further information.
Attached Files  configs.tar.gz [^] (5,889 bytes) 08-11-05 21:34

- Relationships

- Notes
(0001659)
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);
...
        }
 
(0004644)
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
02-14-08 04:37 vda Resolution open => fixed


Copyright © 2000 - 2006 Mantis Group
Powered by Mantis Bugtracker