JDK-4226144 : jdk118m - randomly failure in api/java_lang/ThreadGroup/setDaemon01/setDaemo0101
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.lang
  • Affected Version: 1.1.8
  • Priority: P2
  • Status: Closed
  • Resolution: Not an Issue
  • OS: solaris_2.6
  • CPU: sparc
  • Submitted: 1999-04-01
  • Updated: 1999-04-09
  • Resolved: 1999-04-09
Related Reports
Relates :  
Relates :  
Description
This is intermittenly failure, the test failed one out of 4 or 5 times, and the failure only
happens on Sparc Solaris 2.6 runng native jdk. This test passed Solaris 7, 2.5.1 for Sparc,
Solaris 7, 2.6, 2.5.1 for Intel, and Win32 platforms.

When running JCK-116a with JDK118m in native mode, one failure of ThreadGroup randomly occurs,
the system under test has the correct native patch installed.

The same problem also randomly happens in the previous JDK118 build M.

ppupkin# uname -a
SunOS pupkin 5.6 Generic sun4u sparc SUNW,Ultra-2
pupkin# showrev -p
Patch: 105210-19 Obsoletes:  Requires:  Incompatibles:  Packages: SUNWcsu, SUNWarc
Patch: 105568-13 Obsoletes:  Requires: 105210-11 Incompatibles:  Packages: SUNWcsu, SUNWhea
pupkin# 

output from the 
citation 326% more api/java_lang/ThreadGroup/setDaemon01/setDaemon0101/setDaemon0101.jtr
#Test Results
#Wed Mar 31 12:14:28 PST 1999
testsuite=/net/tapas/export0/JCK-116a/tests/testsuite.html
source=setDaemon0101.java
executeClass=javasoft.sqe.tests.api.java.lang.ThreadGroup.setDaemon0101.setDaemon0101
title=setDaemon()
status=Failed. unexpected exit code: exit code 1
work=/net/tapas/export2/results/118m/m8pupkin116anativejdk/api/java_lang/ThreadGroup/setDaemon01/setDaemon0101/
execStatus=Failed. unexpected exit code: exit code 1
description=file:/net/tapas/export0/JCK-116a/tests/api/java_lang/ThreadGroup/setDaemon01/setDaemon0101/setDaemon0101.html
name=setDaemon0101
sections=testExecute testExecute
harnessVersion=JT_2.0_i
file=/net/tapas/export0/JCK-116a/tests/api/java_lang/ThreadGroup/setDaemon01/setDaemon0101/setDaemon0101.html
end=Wed Mar 31 12:14:28 PST 1999
start=Wed Mar 31 12:14:27 PST 1999
keywords=compile execute positive coreAPI
environment=jck-runtime-otherJVM-solaris

test: api/java_lang/ThreadGroup/setDaemon01/setDaemon0101/setDaemon0101.html
script: javasoft.sqe.javatest.lib.JCKScript -runtime
Executing test class...
command: javasoft.sqe.javatest.lib.ExecJCKTestOtherJVMCmd CLASSPATH=/net/tapas/export0/JCK-116a/tests/../classes:/net/tapas/expor
t0/JCK-116a/javatest.jar DISPLAY=pupkin:0.0 HOME=/home/jhsiao LD_LIBRARY_PATH=/net/tapas/export0/JCK-116a/tests/../lib:/net/tapas
/export0/JCK-116a/tests/../lib_solaris: /net/tapas/export0/jdk118m/solaris/bin/java -native -verify javasoft.sqe.tests.api.java.l
ang.ThreadGroup.setDaemon0101.setDaemon0101
----------ref:testExecute(0/0)----------
----------log:testExecute(6/375)----------
java.lang.IllegalThreadStateException
        at java.lang.ThreadGroup.add(ThreadGroup.java)
        at java.lang.Thread.init(Thread.java)
        at java.lang.Thread.<init>(Thread.java)
        at javasoft.sqe.tests.api.java.lang.ThreadGroup.setDaemon0101.setDaemon0101.run(setDaemon0101.java:42)
        at javasoft.sqe.tests.api.java.lang.ThreadGroup.setDaemon0101.setDaemon0101.main(setDaemon0101.java:56)
command result: Failed. unexpected exit code: exit code 1
test result: Failed. unexpected exit code: exit code 1


Here is the java_lang.jtp file:

#Test Harness properties
#Wed Mar 25 18:16:00 PST 1998
javasoft.sqe.javatest.selection.initialFiles=api/java_lang/ThreadGroup/setDaemon01/setDaemon0101/setDaemon0101.html
javasoft.sqe.javatest.selection.prev.failed=true
javasoft.sqe.javatest.selection.prev.passed=false
javasoft.sqe.javatest.selection.prev.error=true
javasoft.sqe.javatest.selection.keywords=coreAPI&!interactive
javasoft.sqe.javatest.selection.testSuite=/net/tapas/export0/JCK-116a/tests/testsuite.html
javasoft.sqe.javatest.selection.status=ignore
javasoft.sqe.javatest.selection.excludeList=/net/tapas/export0/JCK-116a/lib/jdk1_16.jtx
javasoft.sqe.javatest.selection.keywordOp=expr
javasoft.sqe.javatest.selection.prev.notRun=true
javasoft.sqe.javatest.selection.keywordsMenu=longTest security compile  parallel extensionAPI simple positive virtualMachine mayF
ail execute negative serial javaCompiler
javasoft.sqe.javatest.selection.prev.check=true
javasoft.sqe.javatest.execution.timeout=
javasoft.sqe.javatest.execution.concurrency=
javasoft.sqe.javatest.execution.envFiles=/net/tapas/export0/jtpfiles/m8pupkin116anativejdk/testDev.javatest.properties  
javasoft.sqe.javatest.execution.environment=jck-runtime-otherJVM-solaris
javasoft.sqe.javatest.results.workDir=/net/tapas/export2/results/118m/m8pupkin116anativejdk
javasoft.sqe.javatest.results.reportDir=/net/tapas/export2/results/118m/m8pupkin116anativejdk/java_lang.report


Comments
EVALUATION The spec is very unclear on what the semantics of daemon thread groups. In particular, it does not say what constitutes the death of the last thread if the thread group intermittently switches between daemon and normal state. This JCK test makes unwarranted assumptions concerning these semantics, and should be excluded. joshua.bloch@Eng 1999-04-07
07-04-1999