On 2007/03/14 at 16:30:31 Florian Weimer <[EMAIL PROTECTED]> wrote
> * Michal Sabala:
> 
> > The perl program in question is a single thread process using Net::Pcap
> > to capture and analyze network traffic. Every few weeks the program
> > hangs in pthread_setcanceltype().
> 
> > I'm investigating is forcing LinuxThreads instead of NPTL will bypass
> > the issue. Also, I've had a RHEL4 machine hang in futex.
> 
> Does your program call setuid or something like that?  Does it fork?

Hello Florian,

The program sets $EGID and $EUID right after it starts to drop from root
to non-privileged user.

During operation, it forks and execs a child process (every few minutes).

$SIG{CHLD} is:

  sub handlerCHLD {
    my $child = 0;
    my $waitAttempts = 3;
    while ( ($child = waitpid( -1, WNOHANG)) > 0 && $waitAttempts > 0 ){
      print "Waited for child process PID=$child\n";
      $waitAttempts--;
    }
    $SIG{CHLD} = \&handlerCHLD; #
  }

before launching the next child process, parent process does:

    if ( defined $oldChild && waitpid( $oldChild, WNOHANG ) == 0 ){
      print "Child process pid=$oldChild is still running!! killing it!!!\n";
      kill 9, $oldChild;
    }

Kill is never called with the child process I'm using (as it completes
quickly).

Thanks in-advance for all suggestions and input.

Michal



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to