[Bug 25002] New: test runner timeout does not work properly when inferior itself spawns children and shares file handles

Bug ID 25002
Summary test runner timeout does not work properly when inferior itself spawns children and shares file handles
Product lldb
Version unspecified
Hardware PC
OS All
Status NEW
Severity normal
Priority P
Component All Bugs
Assignee lldb-dev@lists.llvm.org
Reporter todd.fiala@gmail.com
CC llvm-bugs@lists.llvm.org
Classification Unclassified

Discovered during:
https://llvm.org/bugs/show_bug.cgi?id=24993

I'll need to not trust the inferior's stdout/stderr pipe liveness to mean that
the child process is still alive. It could be dead, with its own children
keeping the pipes open.  I've got a positive test case of this not working
right:
* spawn child (P1)
* have child spawn another child (C1), sharing stdout/stderr/stdin.
* C1 never returns (loops forever)
* P1 immediately exits

At this point, the test runner should recognize that the process it launched
(P1) has completed.   Currently it does not.  Worse yet, in my test, it never
exits the run_with_timeout() call (i.e. the timeout isn't occurring.)

Fixing this now.

Todd Fiala changed bug 25002