Bug 2621 - frysk.proc.LinuxTask in state "StartMainTask.detachBlocked" did not handle handleRemoval
Summary: frysk.proc.LinuxTask in state "StartMainTask.detachBlocked" did not handle ha...
Status: NEW
Alias: None
Product: frysk
Classification: Unclassified
Component: general (show other bugs)
Version: unspecified
: P1 normal
Target Milestone: ---
Assignee: Unassigned
URL:
Keywords:
: 2629 (view as bug list)
Depends on:
Blocks: 1516
  Show dependency treegraph
 
Reported: 2006-04-28 14:38 UTC by Len DiMaggio
Modified: 2008-03-13 21:16 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Len DiMaggio 2006-04-28 14:38:59 UTC
Frysk GUI crashes when a fork observer is attached to a forking process

If a process is set up to repeatedlt fork child processes - and a fork observer
is attached to that forking process, the GUI creates the dynamic (scrolling
vertical bar) display for a few seconds and then crashes with this error:

==============================
Frysk Core has reported the following errors

{frysk.proc.LinuxTask@13bd5f0,pid=27690,tid=27690,state=StartMainTask.detachBlocked}
in state "StartMainTask.detachBlocked" did not handle handleRemoval

frysk.proc.State.unhandled (FryskGui)
frysk.proc.TaskState.handleRemoval (FryskGui)
frysk.proc.Task.performRemoval (FryskGui)
frysk.proc.LinuxProc.sendRefresh (FryskGui)
frysk.proc.LinuxHost.sendRefresh (FryskGui)
frysk.proc.HostState$1.handleRefresh (FryskGui)
frysk.proc.Host$1.execute (FryskGui)
frysk.event.EventLoop.runEventLoop (FryskGui)
frysk.event.EventLoop.run (FryskGui)
frysk.gui.Gui$3.run (FryskGui)
java.lang.Thread.run (libgcj.so.7)
Comment 1 Len DiMaggio 2006-04-28 14:40:36 UTC
Here's the simple test program:

#include <stdio.h>

int main(int argc, char *argv[])
{
        int pid=0;
        while(1)
        {
                sleep(5);
                if (pid = fork())
                {
                  printf("in the parent process, pid = %d\n", pid);
               }
                else {
                        printf("in the child process,  pid = %d\n", pid);
                        exit(2);
                }
        }
        exit(1);
}
Comment 2 Andrew Cagney 2006-05-30 06:39:31 UTC
*** Bug 2629 has been marked as a duplicate of this bug. ***
Comment 3 Mark Wielaard 2008-03-13 21:14:40 UTC
The error is still there although it now triggers in a different state and only
after a longer time:

{frysk.proc.live.LinuxPtraceProc@30e419d5,pid=4061,state=destroyed} in state
"destroyed" did not handle handleRemoval

java.lang.RuntimeException:
{frysk.proc.live.LinuxPtraceProc@30e419d5,pid=4061,state=destroyed} in state
"destroyed" did not handle handleRemoval
   at frysk.proc.live.State.unhandled(FryskGui)
   at frysk.proc.live.LinuxPtraceProcState.handleRemoval(FryskGui)
   at frysk.proc.live.LinuxPtraceProc$2.execute(FryskGui)
   at frysk.event.EventLoop.runEventLoop(FryskGui)
   at frysk.event.EventLoop.run(FryskGui)
   at frysk.gui.Gui$5.run(FryskGui)
   at java.lang.Thread.run(libgcj.so.8rh)
Comment 4 Mark Wielaard 2008-03-13 21:16:10 UTC
*** Bug 5800 has been marked as a duplicate of this bug. ***