bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AIX and Interix also do early PID recycling.


From: Michael Haubenwallner
Subject: Re: AIX and Interix also do early PID recycling.
Date: Fri, 27 Jul 2012 15:50:11 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.3) Gecko/20120327 Thunderbird/10.0.3

On 07/26/2012 11:37 PM, Michael Haubenwallner wrote:
> On 07/26/12 20:29, Chet Ramey wrote:
>> OK, we have some data, we have a hypothesis, and we have a way to test it.
>> Let's test it.
>>
>> Michael, please apply the attached patch, disable RECYCLES_PIDS, and run
>> your tests again.  This makes the check for previously-saved exit statuses
>> unconditional.
>>
>> Let's see if this is the one change of significance.
> 
> Nope, doesn't fix the problem, even if it might be necessary though
> to not mix up stored exitstates.

For mixing up stored exitstates: This patch isn't enough to get below testcase
working reliably - it also is necessary to drop the pid_wrap detection, as pids
aren't guaranteed to be (re)used in any particular order. However, this highly
depends on the machine's load.

With attached patch I haven't been able to break the testcase below so far
on that AIX 6.1 box here.

But still, the other one using the $()-childs still fails.

---
for job in {128..511} {0..127}
do
  if [[ ${job} -lt 128 ]]; then
    ( exit 17 ) & 
  else  
    ( exit 1 ) &
  fi
  eval "pidof_${job}=\$!"
done

for job in {127..0}; do
  pid=pidof_${job}
  pid=${!pid}

  wait ${pid}
  ret=$?

  if [ ${ret} -ne 17 ]; then
    echo "job ${job} failed with ret ${ret}" 
  fi
done
---

Thank you!
/haubi/ (away for next 3 weeks)

Attachment: pid-recycle-wrap.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]