From: William C. <wc...@us...> - 2019-07-25 14:35:56
|
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 |