blob: 0a45c34b267e2646918175ba23d3912681451413 [file] [log] [blame]
source `dirname $0`/util.sh
NEST_EXE=nested_detach_wait
SLEEP_EXE=nested_detach_kill_stuck
SYNC_TOKEN=sleeping
WAIT_SECS=1
mkdir $workdir/inner
RECORD_ARGS="--wait --env=_RR_TRACE_DIR=$workdir/inner"
save_exe "$NEST_EXE"
save_exe "$SLEEP_EXE"
touch record.out
just_record $NEST_EXE-$nonce "$(which rr) record --nested=detach $PWD/$SLEEP_EXE-$nonce" &
SUB_ID=$!
echo "Waiting for token '$SYNC_TOKEN' from tracee ..."
until grep -q $SYNC_TOKEN record.out; do
sleep 0
if ! kill -0 "$SUB_ID" >/dev/null 2>&1; then failed "subshell died, no need to longer wait for '$SYNC_TOKEN'"; exit; fi
done
rrpid=$(parent_pid_of $(pidof $NEST_EXE-$nonce))
echo " done. Delivering SIGTERM to $rrpid ..."
kill -TERM $rrpid
echo " done."
# Wait for 'record' to actually terminate.
wait
# Replay outer
replay
# Replay inner
cd $workdir/inner
workdir_orig=$workdir
workdir=$PWD
wait_for_complete
replay
check_replay_token $SYNC_TOKEN
workdir=$workdir_orig