Popen.communicate () zgłasza błąd OSE: „[Errno 10] Brak procesów potomnych”

Próbuję uruchomić proces potomny i uzyskać jego wyjście w systemie Linux z Pythona przy użyciu modułu podprocesu:

#!/usr/bin/python2.4
import subprocess

p = subprocess.Popen(['ls', '-l', '/etc'],
                   stdout=subprocess.PIPE,
                   stderr=subprocess.PIPE)
out, err = p.communicate()

Jednak doświadczam pewnej niestabilności: czasami p.communicate () rzucał

OSError: [Errno 10] No child processes

Co może spowodować ten wyjątek? Czy jest tu jakiś niedeterminizm lub sytuacja rasowa, która może powodować łuszczenie?