United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6962804 ShellScaffold tests can fail without a specific reason
JDK-6962804 : ShellScaffold tests can fail without a specific reason

Details
Type:
Bug
Submit Date:
2010-06-21
Status:
Resolved
Updated Date:
2010-08-11
Project Name:
JDK
Resolved Date:
2010-08-11
Component:
core-svc
OS:
generic
Sub-Component:
debugger
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
7
Fixed Versions:

Related Reports
Backport:

Sub Tasks

Description
Here is a snippet from the passing JDK7-B97 RedefineClearBreakpoint.jtr file:

VM Started: No frames on the current call stack

main[1] Deferring breakpoint shtest:11.
It will be set after the class is loaded.
main[1] > Set deferred breakpoint shtest:11

Breakpoint hit: "thread=main", shtest.m(), line=11 bci=3
11                System.out.println("shtest -  constructor" + b); //@1 breakpoint

main[1] main[1] Set breakpoint shtest:11
main[1] > shtest -  constructor23

Step completed: "thread=main", shtest.m(), line=12 bci=28
12                return b*b;

main[1] Removed: breakpoint shtest:11
main[1] Method arguments:
b = 23
Local variables:
bb = 89
main[1] VM option '-ShowMessageBoxOnError'

--Done: test passed
----------System.err:(13/543)----------
ShellScaffold.sh: Version
--Sending cmd:  stop at shtest:11
--Sending cmd:  run
java version "1.7.0-ea"
Java(TM) SE Runtime Environment (build 1.7.0-ea-b97)
Java HotSpot(TM) Client VM (build 19.0-b02-fastdebug, compiled mode)

--Sending cmd:  redefine shtest C:/work/local/test_results/jdk7/baseline/b97/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/classes/com/sun/jdi/aa8376/vers2/shtest.class
--Sending cmd:  stop at shtest:11
--Sending cmd:  next
--Sending cmd:  clear shtest:11
--Sending cmd:  locals
--Sending cmd: quit
result: Passed. Execution successful


test result: Passed. Execution successful


Here is a snippet from the failing JDK7-B98 RedefineClearBreakpoint.jtr file:

VM Started: No frames on the current call stack

main[1] Deferring breakpoint shtest:11.                                         It will be set after the class is loaded.                                       main[1] > Set deferred breakpoint shtest:11

Breakpoint hit: "thread=main", shtest.m(), line=11 bci=3
11                System.out.println("shtest -  constructor" + b); //@1 breakpoint

main[1] main[1] Set breakpoint shtest:11
main[1] shtest -  constructor23>

Step completed: "thread=main", shtest.m(), line=12 bci=28
12                return b*b;

main[1] Removed: breakpoint shtest:11
main[1] Method arguments:
b = 23
Local variables:
bb = 89
main[1] VM option '-ShowMessageBoxOnError'
----------System.err:(13/543)----------
ShellScaffold.sh: Version
--Sending cmd:  stop at shtest:11
--Sending cmd:  run
java version "1.7.0-ea"
Java(TM) SE Runtime Environment (build 1.7.0-ea-b98)
Java HotSpot(TM) Client VM (build 19.0-b02-fastdebug, compiled mode)

--Sending cmd:  redefine shtest C:/work/local/test_results/jdk7/baseline/b98/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/classes/com/sun/jdi/aa5536/vers2/shtest.class
--Sending cmd:  stop at shtest:11
--Sending cmd:  next
--Sending cmd:  clear shtest:11
--Sending cmd:  locals
--Sending cmd: quit
result: Error. Execution failed


test result: Error. Execution failed


The only substantive difference between the two .jtr files is:

> --Done: test passed

This line is generated by the following ShellScaffold function:

# This should really be named 'done' instead of pass.
pass()
{
    if [ ! -r "$failFile" ] ; then
        echo
        echo "--Done: test passed"
        exit 0
    fi 
}       


The test's run directory does not contain the failFile so I'm
suspicious that this is another case of a file appearing to
exist (or be non-empty) when it is not. ShellScaffold could
be more clear about when it is failing due to the existence
of the failFile so that's the place to start.
During baseline testing for JDK7-B98, I observed three SDK/JDK JDI_REGRESSION
tests fail due to timeout. However, when I investigated the timeouts I found
that two of the three tests actually ran to completion.

Here are the elapsed execution times for the three tests from JDK7-B85
to JDK7-B98:

$  grep elapsed */sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr
b85.1/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 20.993
b85/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 18.583
b86/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 21.744
b87/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 24.972
b88/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 22.722
b89/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 21.277
b90/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 47.398
b91/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 24.302
b92/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 22.215
b93/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 22.537
b94/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 24.497
b95/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 23.554
b96/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 22.804
b97/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 18.375
b98/sdk-jdi-prod-client-fast-comp.windows-i586/JTwork/com/sun/jdi/RedefineClearBreakpoint.jtr:elapsed time (seconds): 124.067


$ grep elapsed */sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr
b85.1/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 30.622
b85/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 26.004
b86/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 31.834
b87/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 34.333
b88/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 30.189
b89/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 32.509
b90/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 65.324
b91/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 30.231
b92/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 30.473
b93/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 29.559
b94/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 33.993
b95/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 32.718
b96/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 53.434
b97/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 30.476
b98/sdk-jdi-prod-client-fast-mixed.windows-i586/JTwork/com/sun/jdi/Redefine-g.jtr:elapsed time (seconds): 120.311


$ grep elapsed */sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr
b85.1/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 38.393
b85/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 37.105
b86/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 41.05
b87/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 46.761
b88/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 44.699
b89/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 41.104
b90/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 87.628
b91/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 54.804
b92/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 40.535
b93/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 51.49
b94/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 39.839
b95/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 54.284
b96/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 40.711
b97/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 34.126
b98/sdk-jdi-prod-server-prod-mixed.windows-i586/JTwork/com/sun/jdi/BreakpointWithFullGC.jtr:elapsed time (seconds): 124.888

                                    

Comments
SUGGESTED FIX

See attached 6962804-webrev-cr0.tgz for the proposed fix.
                                     
2010-07-20
EVALUATION

Add diagnostics for code paths where failFile is used to
determine failure, but nothing is output. Also refactor
missing NL logic.
                                     
2010-07-20
EVALUATION

http://hg.openjdk.java.net/jdk7/tl/jdk/rev/946236dc5c96
                                     
2010-07-22
EVALUATION

http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/4b141a1c9c57
                                     
2010-07-26



Hardware and Software, Engineered to Work Together