This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 227918

Summary: CloneableEditorSupportTest.testDocumentIsNotGCedIfOpenedInEditor may crash JDK7 VM
Product: platform Reporter: Jiri Rechtacek <jrechtacek>
Component: TextAssignee: Jaroslav Tulach <jtulach>
Status: RESOLVED FIXED    
Severity: normal CC: mmetelka
Priority: P2 Keywords: TEST
Version: 7.4   
Hardware: PC   
OS: Linux   
Issue Type: DEFECT Exception Reporter:
Attachments: The report from HotSpot crash
Output after running with -Dsun.java2d.debugfonts=true

Description Jiri Rechtacek 2013-03-25 17:39:58 UTC
org.netbeans.CLIHandlerTest.testHelpIsPassedToRunningServer
org.openide.filesystems.ContentProviderTest.testCheckAFileFromOurLayer
org.openide.filesystems.FileUtilTest.testGetMIMETypeConstrained
org.openide.awt.MenuBarTest.testActionFactoryCanReturnNull
org.netbeans.CLIHandlerTest.testFileExistsButTheServerCannotBeContacted
org.openide.explorer.view.TreeViewTest.testNodesGCedAfterSetChildrenLazy
org.openide.loaders.DataNodeTest.testDataNodeGetHtmlNameDoesNotInitializeAllFiles
org.openide.filesystems.MultiFileSystemRevealTest.testFileDeleted
org.netbeans.ArchiveTest.testWrongClassPathElement
org.netbeans.core.NbErrorManagerTest.testAddedInfo
org.openide.text.CloneableEditorSupportTest.testDocumentIsNotGCedIfOpenedInEditor
org.netbeans.CLIHandlerTest.testFileExistsButTheServerCannotBeContactedAndWeDoNotWantToCleanTheFileOnOtherHost
org.openide.text.InitializeInAWTTest.testInitializeOnBackground
org.netbeans.ModuleManagerPersistanceTest.testModuleManagerStoresIsOSGiInfo
org.openide.nodes.ChildFactoryTest.testAddRemoveNotifyAsynch
Comment 2 Jaroslav Tulach 2013-04-11 13:23:18 UTC
org.netbeans.ArchiveTest fixed in:
http://hg.netbeans.org/ergonomics/rev/6fec15029069

request processor test fixed in:
http://hg.netbeans.org/ergonomics/rev/d99f1be4b0ff

CLIHandlerTest addressed in cb3af9501812


remains:


org.openide.filesystems.ContentProviderTest.testCheckAFileFromOurLayer
org.openide.filesystems.FileUtilTest.testGetMIMETypeConstrained
org.openide.filesystems.MultiFileSystemRevealTest.testFileDeleted
org.openide.awt.MenuBarTest.testActionFactoryCanReturnNull
org.openide.explorer.view.TreeViewTest.testNodesGCedAfterSetChildrenLazy
org.openide.loaders.DataNodeTest.testDataNodeGetHtmlNameDoesNotInitializeAllFiles
org.netbeans.core.NbErrorManagerTest.testAddedInfo
org.openide.text.CloneableEditorSupportTest.testDocumentIsNotGCedIfOpenedInEditor
org.openide.text.InitializeInAWTTest.testInitializeOnBackground
org.netbeans.ModuleManagerPersistanceTest.testModuleManagerStoresIsOSGiInfo
org.openide.nodes.ChildFactoryTest.testAddRemoveNotifyAsynch
Comment 3 Jaroslav Tulach 2013-04-11 14:13:12 UTC
All openide.filesystems tests seems to pass 
http://hudson4qe.cz.oracle.com/view/Platform/job/platform-filesystems/822/
since Apr 2, on all platforms with one day exception of
FileObjectTestHid.testWriteReadExclusion which I addressed in e19c187bd6cb. I am considering to remove all @RandomlyFails annotations from openide.filesystems module.

NbErrorManagerTest seems to be running OK, I'm just adding a timeout: 9babff2115b8 - similar situation for MenuBarTest.

DataNodeTest does not seem to be failing on my JDK7

CloneableEditorSupportTest crashed the VM.

InitializeInAWTTest passes fine and quickly. Decreasing timeout to 10s and removing @RF

ChildFactoryTest passes OK and moreover the test run 
http://hudson4qe.cz.oracle.com/view/Platform/job/platform-nodes/
is stable since Apr 3, 2013. Considering to remove all @RF annotations in openide.nodes.

ModuleManagerPersistanceTest passes locally, but the stability on the server does not seem high enough. Keeping 





remains: 
org.openide.text.CloneableEditorSupportTest.testDocumentIsNotGCedIfOpenedInEditor
consider removing all @RF from openide.filesystems and openide.nodes.
Comment 4 Quality Engineering 2013-04-19 03:23:43 UTC
Integrated into 'main-golden', will be available in build *201304182301* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/cb3af9501812
User: Jaroslav Tulach <jtulach@netbeans.org>
Log: #227918: Splitting the tests into two parts. Makes them more reliable.
Comment 5 Jaroslav Havlin 2013-06-05 13:24:01 UTC
(In reply to comment #3)
> remains:
>
> consider removing all @RF from openide.filesystems and openide.nodes.
Removed in http://hg.netbeans.org/core-main/rev/8b39fbe0c45a

> org.openide.text.CloneableEditorSupportTest
>                     .testDocumentIsNotGCedIfOpenedInEditor
Reassigning back. Can you please handle it? Thank you.
Comment 6 Ondrej Vrabec 2013-06-06 06:45:01 UTC
FileChooserBuilderTest still fails quite regularly on core builder: http://deadlock.netbeans.org/hudson/job/NB-Core-Build/10301/testReport/org.openide.filesystems/FileChooserBuilderTest/testForceUseOfDefaultWorkingDirectory/
adding @RandomlyFails again
Comment 7 Jaroslav Tulach 2013-06-06 07:30:19 UTC
All the tests are fixed (some of them need @RF again), except the  testDocumentIsNotGCedIfOpenedInEditor which crashes VM when executed in batch with other openide.text tests, but passes, when executed alone. According to hotspot dump (which I will attach), the bug is somewhere in JDK's font loading code:


Stack: [0x8f75e000,0x8f7af000],  sp=0x8f7acad0,  free space=314k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x43d42b]  JNI_ArgumentPusherVaArg::JNI_ArgumentPusherVaArg(_jmethodID*, char*)+0x1b
V  [libjvm.so+0x43c740]  jni_CallIntMethod+0xb0
C  [libt2k.so+0x50f44]  ReadTTFontFileFunc+0xe4
C  [libt2k.so+0x29ca4]  ReadInt32+0xe4
C  [libt2k.so+0x2c2e5]  New_sfntClassLogical+0x3d5
C  [libt2k.so+0x50c70]  Java_sun_font_T2KFontScaler_initNativeScaler+0x240
j  sun.font.T2KFontScaler.initNativeScaler(Lsun/font/Font2D;IIZI[I)J+0
j  sun.font.T2KFontScaler.<init>(Lsun/font/Font2D;IZI)V+51
v  ~StubRoutines::call_stub
V  [libjvm.so+0x40f005]  JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0x315
V  [libjvm.so+0x5d57e9]  os::os_exception_wrapper(void (*)(JavaValue*, methodHandle*, JavaCallArguments*, Thread*), JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0x19
V  [libjvm.so+0x40dcff]  JavaCalls::call(JavaValue*, methodHandle, JavaCallArguments*, Thread*)+0x2f
V  [libjvm.so+0x63b766]  Reflection::invoke(instanceKlassHandle, methodHandle, Handle, bool, objArrayHandle, BasicType, objArrayHandle, bool, Thread*)+0x3c6
V  [libjvm.so+0x63c748]  Reflection::invoke_constructor(oopDesc*, objArrayHandle, Thread*)+0x2d8
V  [libjvm.so+0x465718]  JVM_NewInstanceFromConstructor+0xd8
C  [libjava.so+0x1517b]  Java_sun_reflect_NativeConstructorAccessorImpl_newInstance0+0x2b
j  sun.reflect.NativeConstructorAccessorImpl.newInstance0(Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;+0
j  sun.reflect.NativeConstructorAccessorImpl.newInstance([Ljava/lang/Object;)Ljava/lang/Object;+72
j  sun.reflect.DelegatingConstructorAccessorImpl.newInstance([Ljava/lang/Object;)Ljava/lang/Object;+5
j  java.lang.reflect.Constructor.newInstance([Ljava/lang/Object;)Ljava/lang/Object;+79
j  sun.font.FontScaler.getScaler(Lsun/font/Font2D;IZI)Lsun/font/FontScaler;+39
j  sun.font.TrueTypeFont.getScaler()Lsun/font/FontScaler;+21

Possibly it is caused by frequent calls to System.gc which the native code is not ready for. Can we report a bug for JDK? Meanwhile the test has to be marked as @RF or disabled completely, I am afraid (Míla CCed).
Comment 8 Jaroslav Tulach 2013-06-06 07:30:58 UTC
Created attachment 135416 [details]
The report from HotSpot crash
Comment 9 Quality Engineering 2013-06-08 01:11:00 UTC
Integrated into 'main-golden', will be available in build *201306072301* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/8b39fbe0c45a
User: Jaroslav Havlin <jhavlin@netbeans.org>
Log: #227918: Remove @RandomlyFails annotations
Comment 10 Antonin Nebuzelsky 2013-06-25 11:55:12 UTC
JDK bug #8017580.
Comment 11 Jaroslav Tulach 2013-07-09 12:19:57 UTC
Created attachment 136872 [details]
Output after running with -Dsun.java2d.debugfonts=true

After modifying the test to:

diff -r da0c3769e51d openide.text/test/unit/src/org/openide/text/CloneableEditorSupportTest.java
--- a/openide.text/test/unit/src/org/openide/text/CloneableEditorSupportTest.java       Tue Jul 09 06:29:38 2013 +0000
+++ b/openide.text/test/unit/src/org/openide/text/CloneableEditorSupportTest.java       Tue Jul 09 14:18:03 2013 +0200
@@ -79,6 +79,9 @@
  */
 public class CloneableEditorSupportTest extends NbTestCase
 implements CloneableEditorSupport.Env {
+    static {
+        System.setProperty("sun.java2d.debugfonts", "true");
+    }
 
     public static Test suite() {
         return GraphicsEnvironment.isHeadless() ? new TestSuite() : new TestSuite(CloneableEditorSupportTest.class);

and running:

$ ant -f openide.text/build.xml test-single -Dtest.includes=**/CloneableEditorSupportTest*

I get the attached log file.
Comment 12 Jaroslav Tulach 2013-08-06 06:48:16 UTC
Phil did extensive investigation of the problem from the JDK point of view and as such there seems to be an easy fix. Let's disable INSANE for this test: 700a56cd4c1e
Comment 13 Quality Engineering 2013-08-08 02:29:00 UTC
Integrated into 'main-silver', will be available in build *201308072300* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/c9314ee9ee9d
User: Jaroslav Tulach <jtulach@netbeans.org>
Log: #227918: Let's disable INSANE for this test
Comment 14 Quality Engineering 2013-08-09 10:48:39 UTC
Integrated into 'main-silver', will be available in build *201308090746* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/c6aa07003e20
User: Jaroslav Tulach <jtulach@netbeans.org>
Log: #227918: Let's disable INSANE for this test