Hi Torsten, I did not find the time yet - but I will do.
Cheers ANdreas -----Ursprüngliche Nachricht----- Von: Torsten Foertsch [mailto:[EMAIL PROTECTED] Gesendet: Freitag, 10. Juni 2005 09:18 An: modperl@perl.apache.org Cc: Nolte, Andreas, D22-WHV Betreff: Re: AW: Apache::SizeLimit ( mp1 and mp2 )-> I think there is a logical error in the code ... I think that can be considered a bug in mp1. I remember I tried to show the behaviour with mp2 without success when the first message of the thread came in. A check on the source shows that mp2 has a ChildInit handler that resets PL_ppid if MP_MAINTAIN_PPID is defined. mp1 has obviously no such hook. Andreas, have you tried out to call Perl::AfterFork::reinit from a ChildInitHandler? It may be a cleaner solution if other modules also happen to use Perl's getppid. Torsten On Friday 10 June 2005 08:10, [EMAIL PROTECTED] wrote: > Hi y`all, > > Just as a follow-up: > > - replacing getppid with with syscall( &SYS_getppid ) and requiring > syscall.ph did the job ! - test system is Suse Linux Enterprise 9 SP1 > with mp 1 > > THX @ Torsten ! > > Cheers > > Andreas > > -----Ursprüngliche Nachricht----- > Von: Torsten Foertsch [mailto:[EMAIL PROTECTED] > Gesendet: Dienstag, 24. Mai 2005 11:19 > An: modperl@perl.apache.org > Betreff: Re: Apache::SizeLimit ( mp1 and mp2 )-> I think there is a > logical error in the code ... > > On Tuesday 24 May 2005 09:39, [EMAIL PROTECTED] wrote: > > I claim, the "main process " detection does never work and does not > > make sense. Why? Not even when the apache is started on boot through > > init, the PPID will be 1, but some shell / rc pid. You can only > > find the PPID in the PID file that apache writes. But still: this > > should never be the case - right ? > > Normally Apache forks on startup to get rid of its parent. So the > init-process (1) inherits the orphan. Then Apache spawns its workers > that are direct children of the master Apache. Hence the test is in > principle right. > > [EMAIL PROTECTED]:~> ps -lC httpd > F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD > 5 S 0 7155 1 0 76 0 - 2756 - ? 00:00:00 httpd > 5 S 30 7158 7155 0 80 0 - 2774 322495 ? 00:00:00 httpd > 5 S 30 7159 7155 0 80 0 - 2774 semtim ? 00:00:00 httpd > > PID 7155 is the main apache. It's PPID is 1. > > But there is a problem with Perls getppid() implementation. Modern > Perls issue the syscall only once and cache the result. Maybe you > somehow hit that. Normally the cache is invalidated when Perl forks, > but Apache does its own fork. Thus maybe the cache remains. > > I'd try to replace getppid with syscall( &SYS_getppid ) and see if it > changes anything. > > Torsten