RFR: 8325567: jspawnhelper without args fails with segfault
Vladimir Petko
vpetko at openjdk.org
Mon Mar 4 23:57:52 UTC 2024
On Mon, 4 Mar 2024 23:23:04 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
>> This change is intended to address the segmentation fault issue that occurs when jspawnhelper is called without arguments, and it includes an updated test to verify the behavior in such cases.
>>
>> Existing tests passes since it does not check behavior without args.
>> After test update the test fails without
>>
>> if (argc != 2) {
>> shutItDown();
>> }
>>
>> code block
>>
>>> Test results: failed: 1
>>> Report written to /home/ec2-user/moe/ws/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-results/jtreg_test_jdk_java_lang_ProcessBuilder_JspawnhelperProtocol_java/html/report.html
>>> Results written to /home/ec2-user/moe/ws/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_ProcessBuilder_JspawnhelperProtocol_java
>>> Error: Some tests failed or other problems occurred.
>>> Finished running test 'jtreg:test/jdk/java/lang/ProcessBuilder/JspawnhelperProtocol.java'
>>> Test report is stored in build/linux-x86_64-server-fastdebug/test-results/jtreg_test_jdk_java_lang_ProcessBuilder_JspawnhelperProtocol_java
>>>
>>> ==============================
>>> Test summary
>>> ==============================
>>> TEST TOTAL PASS FAIL ERROR
>>> jtreg:test/jdk/java/lang/ProcessBuilder/JspawnhelperProtocol.java
>>> >> 1 0 1 0 <<
>>> ==============================
>>> TEST FAILURE
>>
>>
>>
>> after added the code block back
>>
>> if (argc != 2) {
>> shutItDown();
>> }
>>
>>
>> updated test passes
>>
>>
>> lang/ProcessBuilder/JspawnhelperProtocol.d:/home/ec2-user/moe/ws/openjdk/jdk/test/jdk/java/lang/ProcessBuilder:/home/ec2-user/moe/ws/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_ProcessBuilder_JspawnhelperProtocol_java/classes/0/test/lib \\
>> -Xmx768m \\
>> -XX:MaxRAMPercentage=1.04167 \\
>> -Dtest.boot.jdk=/home/ec2-user/moe/soft/jdk/jdk-21 \\
>> -Djava.io.tmpdir=/home/ec2-user/moe/ws/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang_ProcessBuilder_JspawnhelperProtocol_java/tmp \\
>> -ea \\
>> -esa \\
>> -Djava.library.path=/home/ec2-user/moe/ws/openjdk/jdk/build/linux-x86_64-server-fastdebug/images/test/jdk/jtreg/native \\
>> com.sun.javatest.regtest.agent.MainWrapper /home/ec2-user/moe/ws/openjdk/jdk/build/linux-x86_64-server-fastdebug/test-support/jtreg_test_jdk_java_lang...
>
> test/jdk/java/lang/ProcessBuilder/JspawnhelperProtocol.java line 111:
>
>> 109: if (p.exitValue() != 1)
>> 110: System.exit(ERROR + 2);
>> 111: System.exit(0);
>
> Its bad form to System.exit from not at the top level. Is that necessary.
This is in line with other tests in this file , e.g. see `parentCode()`.
I agree that code would be cleaner if the test is refactored to return error code from the test methods and system.exit() in the main instead, but this might be a separate pr done before or after this one.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/18112#discussion_r1511953089
More information about the core-libs-dev
mailing list