1. revert the change as requested
2. provide a Jira with patch and review/discuss it there (what's the problem, how should it be solved etc.)
3. come to a conclusion and a thumbsup by other committers 4. commit the solution. Thanks, Michael Am 25.06.17 um 12:36 schrieb Taher Alkhateeb:
OK, I take this question as your refusal to revert and cooperate. I'm done spending time here and I leave it up to the community to see if they want incorrect code in the code base. On Sun, Jun 25, 2017 at 1:34 PM, Jacques Le Roux < [email protected]> wrote:Mmm but anyway, I remember now how I thought that. In the 2nd "if", if the process was terminated, kill will just say that it can't find the process and exec will return. Else the process will be killed. What's wrong then? Jacques Le 25/06/2017 à 12:28, Jacques Le Roux a écrit :Ah wait, I see line still contains "start" so will be executed twice anyway. OK I'll improve that. Jacques Le 25/06/2017 à 12:18, Jacques Le Roux a écrit :I don't revert without explanations on why I should revert. Sorry, but I don't find your explanations clear. My explanation, tell my what's wrong: The 2 "if" blocks are executed sequentially for each line containing "a start"and ignore other lines. I did not change the previous logic, just added a new if. Gradle exec spawns a new process and waits till it ends (this point is important). If the line contains "a start" the 1st "if" try to terminate it. If it worked the 2nd "if" does not execute. This is better than before because it allows the "'start" process "a chance to clean up after itself" (cf unix.stackexchange.com below) If the "start" process is not terminated then it's killed by the 2nd "if", like it was done before. As I said it cleanly worked with 2 OFBiz instances running in the background. Now tell me what's wrong? Thanks Jacques Le 25/06/2017 à 11:22, Taher Alkhateeb a écrit :As usual, you refuse to revert because you don't understand the code and I pay the price of spending my time explaining. I hope you will reconsider this time consuming and non-cooperative behavior. The quick version: - copy and paste antipattern - incorrect conditional checking leading to both blocks getting executed or both blocks not executing Your belief that Gradle fails because java does not expect to be killed is amazing! It means you do not understand what this code is doing and what is causing the failure. On Jun 25, 2017 10:42 AM, "Jacques Le Roux" < [email protected]> wrote: What makes you think it's wrong? I tested it locally using 2 background instances and it cleaned worked. I also tried with one standard instance (not in background). It works, and you get this message :ofbiz FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':ofbiz'.Process 'command '/usr/lib/jvm/java-8-oracle/bin/java'' finished withnon-zero exit value 137 Which I believe is OK because Java does not expect to be killed! Jacques Le 24/06/2017 à 20:04, Taher Alkhateeb a écrit : This commit is wrong and bad on multiple levels. Please revertOn Sat, Jun 24, 2017 at 10:56 AM, <[email protected]> wrote: Author: jlerouxDate: Sat Jun 24 07:56:45 2017 New Revision: 1799736 URL: http://svn.apache.org/viewvc?rev=1799736&view=rev Log: No functional change Improves terminateOfbiz byt using TERM before KILL https://fr.wikipedia.org/wiki/Kill_(Unix) https://unix.stackexchange.com/questions/8916/when- should-i-not-kill-9-a-process Modified: ofbiz/ofbiz-framework/trunk/build.gradle Modified: ofbiz/ofbiz-framework/trunk/build.gradle URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/ build.gradle?rev=1799736&r1=1799735&r2=1799736&view=diff ============================================================ ================== --- ofbiz/ofbiz-framework/trunk/build.gradle (original) +++ ofbiz/ofbiz-framework/trunk/build.gradle Sat Jun 24 07:56:45 2017 @@ -332,8 +332,13 @@ task terminateOfbiz(group: ofbizServer, standardOutput = processOutput } processOutput.toString().split(System.lineSeparator()).each { line -> + // Try to terminate cleanly if (line ==~ /.*org\.apache\.ofbiz\.base\.s tart\.Start.*/) { - exec { commandLine 'kill', '-9', line.tokenize().first() } + exec { commandLine 'kill', '-TERM', line.tokenize().first() } + } + // Only kill if needed + if (line ==~ /.*org\.apache\.ofbiz\.base\.s tart\.Start.*/) { + exec { commandLine 'kill', '-KILL', line.tokenize().first() } } } }
smime.p7s
Description: S/MIME Cryptographic Signature
