[ https://issues.apache.org/jira/browse/PHOENIX-5454?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17014932#comment-17014932 ]
Istvan Toth commented on PHOENIX-5454: -------------------------------------- I have merged this both into phoenix and phoenix-queryserver. One minor change compared to the PR is that even though traceserver.py originally didn't execute via the shell, my PR added the shell into the execution. I have changed this to use the pattern for the direct execution in the committed change. Thanks [~elserj] for the review and catching the execv/execvp error. > Phoenix scripts start foreground java processes as child processes > ------------------------------------------------------------------ > > Key: PHOENIX-5454 > URL: https://issues.apache.org/jira/browse/PHOENIX-5454 > Project: Phoenix > Issue Type: Improvement > Affects Versions: 5.1.0 > Reporter: Istvan Toth > Assignee: Istvan Toth > Priority: Minor > Attachments: PHOENIX-5454.master.v1.patch, > PHOENIX-5454.master.v2.patch > > Time Spent: 40m > Remaining Estimate: 0h > > Currently the phoenix scripts in python start the java process via > subprocess.call() or subprocess.popen() even when the java process has to run > in the foreground, and there is no cleanup required. > I propose that in these cases, we start java via os.exec*(). This has the > following advantages: > * There is no python process idling waiting for the java process to end, > reducing process count and memory consumption > * Signal handling is simplified (signals sent to the starting script are > received by the java process started) > * Return code handling is simplified (no need to check for and return error > codes from java in the startup script) -- This message was sent by Atlassian Jira (v8.3.4#803005)