Your message dated Tue, 11 Apr 2006 13:24:02 +0300
with message-id <[EMAIL PROTECTED]>
and subject line Bug#326042: perl: perl caches getppid()
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: perl
Version: 5.8.4-8
Severity: normal

The command

strace -f perl -e 'use POSIX; sleep(1) until getppid() == 1;'

shows that perl does not call the underlying getppid(2) after each sleep.

The same command works properly in perl 5.6.

This behaviour change breaks any perl script that relies on getppid()
to return the current parent as opposed to the original parent.

I understand the rationale given in the manual page for perl's getppid
to return consistent value for threads.  However, I don't see that as
a valid excuse for caching the return value of getppid() indefinitely.

So I'd like to see getppid() changed such that it does refresh its
value occasionally.

Thanks,

-- System Information
Debian Release: 3.1
Kernel Version: Linux gondolin 2.4.27-hx-1-686-smp #3 SMP Tue Oct 5 20:01:26 
EST 2004 i686 GNU/Linux

Versions of the packages perl depends on:
ii  libc6          2.3.2.ds1-22   GNU C Library: Shared libraries and Timezone
ii  libdb4.2       4.2.52-18      Berkeley v4.2 Database Libraries [runtime]
ii  libgdbm3       1.8.3-2        GNU dbm database routines (runtime version)
ii  perl-base      5.8.4-8        The Pathologically Eclectic Rubbish Lister
ii  perl-modules   5.8.4-8        Core Perl modules


--- End Message ---
--- Begin Message ---
Package: perl
Version: 5.8.8-1

On Thu, Sep 01, 2005 at 04:49:50PM +1000, [EMAIL PROTECTED] wrote:
> Package: perl
> Version: 5.8.4-8
> Severity: normal
> 
> The command
> 
> strace -f perl -e 'use POSIX; sleep(1) until getppid() == 1;'
> 
> shows that perl does not call the underlying getppid(2) after each sleep.

Hi,

this is fixed in perl 5.8.8. From the changelog:

[ 25395] By: nicholas                              on 2005/09/12  21:50:04
        Log: Integrate:
             [ 24367]
             For perls where pids and ppids are cached, when the ppid of
             the perl process becomes 1, refresh the ppid cache (this may
             indicate that the parent process has died.)

I'm closing the bug accordingly.

Cheers,
-- 
Niko Tyni       [EMAIL PROTECTED]

--- End Message ---

Reply via email to