This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "oprofile".
The branch, master has been updated
via 8aacb573cd2c4a2f8160d99ff100ad0aa5e7859d (commit)
from c4c981a6fcb978b271d2b7ce2dea7abf56efe808 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8aacb573cd2c4a2f8160d99ff100ad0aa5e7859d
Author: Carl Love <ce...@us...>
Date: Thu Jul 25 10:24:16 2019 -0400
Only start the application if the perf events setup was successful
Changes the order of starting the application and performance events.
Given this change we have a new issue. The issue is the routine
start_counting() calls fork, creating app_PID process.
The parent then tries to setup the performance events, then if the
performance events were setup correctly, app_PID is then told to start
before exiting. If the performance counter setup fails, the app_PID is
left running. The app_PID is never told to start the workload, which is
correct but we don't record the fact that app_PID is running. The
error path then fails to kill app_PID in routine main(), in file
oprofile-git/pe_counting, at about lie 909 because the if statement
if (startApp && app_started && (run_result != APP_ABNORMAL_END)) {
is false because app_started is False.
The fix, I believe, is to set app_started to True in the parent code if
the fork was successful. With this fix, there is no orphan processes
left after ocount exits.
-----------------------------------------------------------------------
Summary of changes:
pe_counting/ocount.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
hooks/post-receive
--
oprofile
|