Bug#541551: perl-base: detecting stopped child process fails using POSIX WIFSTOPPED

torp 1250272407 at noid.net
Fri Aug 14 19:15:27 UTC 2009


Package: perl-base
Version: 5.10.0-19
Severity: important


When perl is testing if a child process is stopped, the
result of the WIFSTOPPED function is never correct:

  #!/usr/bin/perl

  $|++;
  use POSIX;

  unless ( $pid = fork ) {
    print "child: stopping self\n";
    kill STOP => $$;
    exit;
  }

  waitpid($pid, WUNTRACED);

  if (WIFSTOPPED($?)) {
    print "parent: child stop (WIFSTOPPED worked: YAY)\n";
  } else {
    print "parent: child exit (WIFSTOPPED failed: BUMMER)\n";
  }

  __END__

This problem is new to Debian Lenny...  On my old Debian Etch
system it's fine.  I've also tested it on some other OS'es (e.g.:
OpenBSD w/ perl v.5.10) and the small app above works in happy mode.

Thanks for your consideration!

- Tor


-- System Information:
Debian Release: 5.0.2
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.26 (SMP w/1 CPU core)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)
Shell: /bin/sh linked to /bin/bash

Versions of packages perl-base depends on:
ii  dpkg                          1.14.25    Debian package management system
ii  libc6                         2.7-18     GNU C Library: Shared libraries

perl-base recommends no packages.

Versions of packages perl-base suggests:
ii  perl                          5.10.0-19  Larry Wall's Practical Extraction 

-- no debconf information






More information about the Perl-maintainers mailing list