JDK-6631715 : 1 JCK test api/javax_sound/sampled/Clip ( 2 testcases ) failed ( occasionally hangs ) on RHEL5 x64
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.sound
  • Affected Version: 5.0u14
  • Priority: P4
  • Status: Closed
  • Resolution: Won't Fix
  • OS: linux_redhat_4.0
  • CPU: x86
  • Submitted: 2007-11-19
  • Updated: 2019-12-17
  • Resolved: 2019-12-17
Related Reports
Relates :  
Relates :  
Description
Test:
   api/javax_sound/sampled/Clip/index.html#ClipTests[Clip2007]  - failed.
   api/javax_sound/sampled/Clip/index.html#ClipTests[Clip2008]  - failed.
Testcases Clip2006 and Clip2009 are passed.

Failed: ( hangs ) on JDK 5 ( checked on u14 rev b04, u13, u12, u10 ) - always on tested 
  host, JDK 6 ( checked on 6u4 b06 ) - in ~ 50% cases on tested host.
Not a regression; can be reproduced for for both linux-x586 and linux-amd64 bundles.

Passed: RHEL 5 x86, RHEL 4 x86
Passed: with JDK 7 b21 on RHEL 5 x64 ( stt-45.russia )

OS/Platform: RHEL 5 x64. ( Red Hat Enterprise Linux Server release 5 (Tikanga) )
Host: stt-45.russia.sun.com
JCK: 1.5a, 6.0a
Sound driver/card:
   Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50 2006 UTC).
   HDA Intel at 0xfebf8000 irq 58

Testcases Clip2006 and Clip2009 are passed.

Desc:
   2 JCK 1.5a ( for also 6.0a ) testcases hangs on stt-45.russia,
   such behavour also can be observed for JDK 6 ( tested on 6u4 b04 ).
Test tries to open, start and close sound clip and check LineListener events.

For JDK 5 - reproduced in 100% cases on stt-45.russia
For JDK 6 - reproduced in ~50% cases on stt-45.russia

Investigations( Clip2007 ):
   test hangs on clip close() method :
        Line l = null;
       ...
        Line.Info infos[] = AudioSystem.getSourceLineInfo(s_info);
       ...
        l = AudioSystem.getLine(infos[0]);
       ...
        Clip s = (Clip) l;
        s.addLineListener(listener);
    // Clip opening, starting, stoping  and checking corresponding events with listener

        s.close();
Modified test output:
-------------------------
Clip2007: start
Clip2007: get AudioInputStream - OK
Clip2007: before setMicrosecondPosition
Clip2007: before start
Clip2007: before stop
Clip2007: after stop
Clip2007: before close

.....test is hanging ...

If we'll remove work with listener from this test - test is passed ( ! ).See modified test ClipTests.zip ( Clip2007 testcase)

It looks like some kind of deadlock/race conditions.
It looks like not drivers/native code related issue.

The similar, but probably not the same problem is described in CR 4912588.

How to reproduce:
 1. Log on stt-45.russia ( see comments section for details )
 2. cd /set/stt/newroot/workspace/1.5/u14/b04-rev/jck/runtime/RHEL5-amd64-JCK1.5a-runtime/rerun_failed
 3. Run ./test5.sh for JDK 5 ( correct script if you need ), ./test6.sh for JDK 6, ./test7.sh for JDK 7
    Run also my_test.sh ( it uses modified src ClipTests.java MyLineListener.java  from current dir,
                          you can modify if as well )

Attachments:
   ClipTests.java        -  test itself
   MyLineListener.java   - LineListener implementation for test

Cmd for reproduce:
/export/JDK/jdk1.5.0_14/bin/java  -cp /net/stt-13.russia/export/stt/jck_promotions/1.5a/fcs/b11/binaries/JCK-runtime-15a/classes javasoft.sqe.tests.api.javax.sound.sampled.Clip.ClipTests -platform.canPlaySound true -platform.soundURL file:///set/stt/jck_promotions/1.5a/fcs/b11/binaries/JCK-runtime-15a//tests/api/javax_sound/sound.wav -TestCaseID Clip2007