JDK-4790855 : RH8.0: nsk/regression/b4510834 fails
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 1.4.2
  • Priority: P3
  • Status: Closed
  • Resolution: Won't Fix
  • OS: generic
  • CPU: generic
  • Submitted: 2002-12-09
  • Updated: 2003-01-10
  • Resolved: 2003-01-08
Related Reports
Relates :  
Description

Name: gv34239			Date: 12/09/2002



Test :nsk/regression/b4510834
VM:  Server  , Client
MODE: Mixed , Comp , Int
OS:  RH8.0
----------------------------------------

 Failure  Output:
===================

#annotate TEST javaopt=-client -client -Xcomp
/net/vmsqe.sfbay/export/weekly/mantis/DTWS/exec1/NSK_FULLLOOK-WEEKLY-VM-ClientVM-comp-RHAT8.0-en-2002-12-05-14-43-41-0873/jdk/linux-i386/bin/java -client -DHANGINGJAVA11248 -client -Xcomp b4510834 50 -waittime=2
##Exit status of execution step=1
##!checkExitCode

#TEST FAILED: time exceeded (2 min)
-----------------------------------------------------------------
Note:
Tried with increasing the waittime to upto 10
The test still fails
Passed with build08

#########################
# To reproduce the bug:
#########################
1. cd /net/jano.sfbay/export/disk20/GammaBase/Bugs/[bug ID]/

2. run rerun.sh

======================================================================

Comments
EVALUATION The test program creates a bunch of Buzz threads that have an infinite loop of yields. Then a PressBuzz thread will try to suspend them all while the main thread is in shutdown path. Redhat 8 kernel changed the behavior of sched_yield() as part of the O(1) scheduler backport. Unfortunately, it looks to me sched.c in kernel source doesn't have all the later fixes that Ingo Molnar put into 2.5 kernels. As the result, when you have multiple yielder threads (the Buzz threads) and an active thread (the PressBuzz thread), kernel scheduler can cause thrashing between yielders and starve the active thread. The PressBuzz thread will not be scheduled until all Buzz threads have used up their time slice, so the test time out. This test will pass if I change "yield" to "sleep" or if I run it with a different kernel (e.g. stock kernel on RH7.3 or the latest 2.5 kernel). For discussions on the issue, please see http://www.uwsg.iu.edu/hypermail/linux/kernel/0206.2 and follow the sched_yield thread. ###@###.### 2002-12-11 ------------------------------------- I was told Redhat was working on a fix in their scheduler. And it appears the test can pass on Redhat 8.1 beta (phoebe). So I'm closing this one as will-not-fix. As a workaround for Redhat 8.0, one can replace "yield()" with "sleep(1)". ###@###.### 2003-01-08
08-01-2003