RFR: 8325567: jspawnhelper without args fails with segfault
Aleksey Shipilev
shade at openjdk.org
Tue Mar 5 10:41:54 UTC 2024
On Mon, 4 Mar 2024 21:19:26 GMT, Elif Aslan <duke 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_ProcessBuilder_JspawnhelperProtocol_java/java/lang/ProcessBuilder/JspawnhelperPr...
The change in jspawnhelper looks good.
I think it would be simpler to have a separate `jdk/java/lang/ProcessBuilder/JspawnhelperMisuse.java` test that simply invokes the `jspawnhelper` and verifies the proper message is printed. It would be more straightforward than trying to fit the _protocol_ test? Plus, we can test 0, 1, 3, 4 args, not only 0 args in that test, and we can also test 2 args with bad format.
-------------
PR Review: https://git.openjdk.org/jdk/pull/18112#pullrequestreview-1916529453
More information about the core-libs-dev
mailing list